2013-09-12 3 views
-1

общественного класса Simple_Interest расширяет активность {Моего Android простого Interest Calculator держит сбой

EditText p, r, t, e, si; 
Button btn; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.simple_interest); 
    p = (EditText) findViewById(R.id.edtprinci); 
    r = (EditText) findViewById(R.id.edtrate); 
    p = (EditText) findViewById(R.id.edtyear); 
    si = (EditText) findViewById(R.id.edtres); 
    btn = (Button) findViewById(R.id.butint); 

    btn.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      // TODO Auto-generated method stub 
      double n1 = 0; 
      double n2 = 0; 
      double n3 = 0; 
      double ans = 0; 
      n1 = Double.parseDouble(p.getText().toString()); 
      n2 = Double.parseDouble(r.getText().toString()); 
      n1 = Double.parseDouble(t.getText().toString()); 
      ans = (n1 * n2 * n3)/100; 
      si.setText(Double.toString(ans)); 
     } 

    }); 
} 

}

Каждый раз, когда я пытаюсь запустить программу в эмуляторе, я получаю диалоговое окно ошибки под названием «, к сожалению, приложение остановилось работает»....

нужна помощь ....

+2

нужно трассировки стека. ... – tyczj

+0

Ошибка LogCat: java.lang.numberFormatexception: Invalid double: "" –

ответ

1

вы сделали ошибку:

p = (EditText) findViewById(R.id.edtprinci); 
r = (EditText) findViewById(R.id.edtrate); 
p = (EditText) findViewById(R.id.edtyear); 

у вас есть 2 раза р и не т

p = (EditText) findViewById(R.id.edtprinci); 
r = (EditText) findViewById(R.id.edtrate); 
t = (EditText) findViewById(R.id.edtyear); 

должны быть лучше, в противном случае т никогда не инициализируется

же для

 n1 = Double.parseDouble(p.getText().toString()); 
     n2 = Double.parseDouble(r.getText().toString()); 
     n1 = Double.parseDouble(t.getText().toString()); 

вам нужно изменить последнюю к

 n3 = Double.parseDouble(t.getText().toString()); 

ваш OnClick должно быть что-то вроде:

public void onClick(View v) { 
     double n1 = 0; 
     double n2 = 0; 
     double n3 = 0; 
     double ans = 0; 

     if(!p.getText().toString().equals("") && !r.getText().toString().equals("") &&!t.getText().toString().equals("")) 
     { 
     n1 = Double.parseDouble(p.getText().toString()); 
     n2 = Double.parseDouble(r.getText().toString()); 
     n1 = Double.parseDouble(t.getText().toString()); 
     ans = (n1 * n2 * n3)/100; 
     si.setText(Double.toString(ans)); 
     } 
     else{ 
     si.setText("Missing data"); 
     } 
    } 

Или еще лучше попытаться поймать;)

Ps: вы инициализировать переменную е, но вы никогда не пользовались :)

+2

Это то, что происходит, когда вы слишком экономичны с именами переменных .. – Egor

+0

@Clad Одетый - это была глупая ошибка .. спасибо. –

+0

Без проблем;) счастливое кодирование;) –

Смежные вопросы