私は非常に簡単なアプリケーションを持っています。しかし、ボタンをクリックすると、アプリがクラッシュします。それをデバッグしようとすると、問題はonClick
メソッドの最初の3行にあるようです。いったん私はその値を手作業で取得しようとしましたが、それらのエディットボックスではなく、すべてがスムーズに進みました。どんなアイデアですか?コンポーネントから変数を読み込んだ後にAndroidアプリがクラッシュする
public class MainActivity extends AppCompatActivity {
EditText editText_pocetKM;
EditText editText_spotreba;
EditText editText_cenaPHM;
TextView textView_spotrebaO;
TextView textView_cenaO;
DecimalFormat df = new DecimalFormat("0.00##");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText_pocetKM = (EditText) findViewById(R.id.editText1_pocetKM);
editText_spotreba = (EditText) findViewById(R.id.editText_Spotreba);
editText_cenaPHM = (EditText) findViewById(R.id.editText1_cenaPHM);
textView_spotrebaO = (TextView) findViewById(R.id.textView_spotrebaO);
textView_cenaO = (TextView) findViewById(R.id.textView_cenaO);
}
public void onClick(View v) {
Double pocetKm = Double.parseDouble(editText_pocetKM.getText().toString());
Double spotreba = Double.parseDouble(editText_spotreba.getText().toString());
Double cenaPHM = Double.parseDouble(editText_cenaPHM.getText().toString());
Double spotrebaO = spotreba * pocetKm/100;
Double cenaO = spotrebaO * cenaPHM;
textView_cenaO.setText("Cena za spotřebované palivo bude "+ df.format(cenaO) + " Kč");
textView_spotrebaO.setText("Celkem bude spotřebováno "+ df.format(spotrebaO) + " litrů paliva");
}
}
エラーが発生したことを確認しておく必要があります。エラーと思われるものは何ですか? parseDoubleを使用している行は、NumberFormatExceptionをスローする可能性があります。また、それらのEditTextの1つがnullで、getTextを呼び出すときにエラーがスローされる – avi