1

私が抱えている問題は、データをまったく入力しない場合、または入力ボックスの1つにデータしかない場合、プログラムがクラッシュすることですが、両方のボックスにデータがある場合、プログラムは正常に動作するため、停止するにはどうすればよいですか?何も入力されていない場合はデータを送信します。エラーは、値 "" の double を解析できることを示しています

    calculate.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            distanceTraveled = Double.parseDouble(distance.getText().toString());
            fuelUsed = Double.parseDouble(fuel.getText().toString());
            part1 = fuelUsed / 4.55;
            mpg = distanceTraveled / part1;
            total.setText(String.format("%.2f", mpg));
        }
    });
4

2 に答える 2

1

計算を行う前に EditView を空または null に変更します。

alculate.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
          if(distance.getText().toString().length() > 0){

            distanceTraveled = Double.parseDouble(distance.getText().toString());
        }
        else{
              distanceTraveled=0; // put default value here
          }
        if(fuel.getText().toString().length() > 0){  
               fuelUsed = Double.parseDouble(fuel.getText().toString());
          }
          else{
               fuelUsed=0;// put default value here

           }
            part1 = fuelUsed / 4.55;
            mpg = distanceTraveled / part1;
            total.setText(String.format("%.2f", mpg));
        }
    });
于 2012-12-02T17:12:21.697 に答える
0

入力フィールドから値を取得する前に、値が空かどうかを確認してください。

if (distance.getText() != null && fuel.getText() != null ) {
    distanceTraveled = Double.parseDouble(distance.getText().toString());
    fuelUsed = Double.parseDouble(fuel.getText().toString());
    part1 = fuelUsed / 4.55;
    mpg = distanceTraveled / part1;
    total.setText(String.format("%.2f", mpg));
} else {
    // You can display a message here for example Toast message that fields cannnot be empty
{
于 2012-12-02T17:12:02.457 に答える