2

editTextがのときにボタンをタップすると、FCがあります。これが私のコードです:

final Button button = (Button) findViewById(R.id.button);

  button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
        float q1=Float.parseFloat(vol.getText().toString());
        float q2=Float.parseFloat(kil.getText().toString());
        String value1 = vol.getText().toString();
        String value2 = kil.getText().toString();
                if (value1 != null && value1.trim().length() > 0 && value2 != null && value2.trim().length() > 0)
                {
                    float x=((q1 / q2)* 100);
                    cons.setText(Float.toString(x));
                }
                else 
                {
                Toast.makeText(carburant.this, "Veuillez saisir le 1er champs", Toast.LENGTH_SHORT).show();
                }
        }
      });
4

3 に答える 3

1

これは、null値をparseFloatしようとしていることが原因である可能性があります。if条件内でq1とq2の値を取得してみてください

于 2011-03-13T19:13:55.810 に答える
1

実際には、例外がスローされます。それらを try catch ブロックで取得します。それを試してみて、キャッチで処理します。キャッチで乾杯できるのでお得です。

Android parseFloat

編集:ここにいくつかのコードがあります。

try {
  flt1 = Float.parseFloat(str1);
  flt2 = Float.parseFloat(str2);
  result = flt1 + flt2;
} catch (NumberFormatException e) {
  // Do something to let user know it didnt work.
}
于 2011-03-13T19:16:02.450 に答える
0

問題は解決しました。float への変換の配置が不適切でした。動作するコードは次のとおりです。

String value1 = vol.getText().toString();
 String value2 = kil.getText().toString();
                     if (value1 != null && value1.trim().length() > 0 && value2 != null && value2.trim().length() > 0)
                     {
                             float q1=Float.parseFloat(vol.getText().toString());
                             float q2=Float.parseFloat(kil.getText().toString());
                             float x=((q1 / q2)* 100);
                             cons.setText(Float.toString(x));

                     }
                     else 
                     {
                     Toast.makeText(carburant.this, "Veuillez vérifier les deux champs", Toast.LENGTH_LONG).show();
                     }

ご協力ありがとうございました :)。

于 2011-03-14T11:55:58.447 に答える