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

原因可能是因为您正在尝试 parseFloat 一个空值。尝试在 if 条件内获取 q1 和 q2 的值

于 2011-03-13T19:13:55.810 回答
1

实际上,它们会抛出异常。将它们放入 try catch 块中。把它放在 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

问题解决了,转换为浮点数不好,这里是工作代码:

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 回答