我试图从编辑文本中获取值,并尝试将其计算并将其置于textview中。但即时通讯转换为双字符串时出现错误。从编辑文本中检索值并计算总数
这是我的编辑文本代码:
<EditText
android:id="@+id/c"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:gravity="center"
android:inputType="number" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/b"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:gravity="center"
android:inputType="number" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:gravity="center"
android:inputType="number" >
<requestFocus />
</EditText>
这里是我的Activity类:
a= (EditText) findViewById(R.id.a);
b= (EditText) findViewById(R.id.b);
c= (EditText) findViewById(R.id.c);
String aa= a.getText().toString();
String bb= b.getText().toString();
String cc= c.getText().toString();
Double total= (Double.valueOf(aa)*Double.valueOf(bb)) + (Double.valueOf(aa)*Double.valueOf(cc)) ;
totalbill = Double.toString(total);
Button submitbutn = (Button) findViewById(R.id.submitbutton);
submitbutn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
d.setText(totalbill);
}
});
}
错误日志:
10-08 07:27:58.115: E/AndroidRuntime(1909): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.vat.calculator/com.vat.calculator.Home}: java.lang.NumberFormatException: Invalid double: ""
10-08 07:27:58.115: E/AndroidRuntime(1909): at java.lang.Double.parseDouble(Double.java:295)
10-08 07:27:58.115: E/AndroidRuntime(1909): at java.lang.Double.valueOf(Double.java:332)
10-08 07:27:58.115: E/AndroidRuntime(1909): at java.lang.StringToReal.invalidReal(StringToReal.java:63)
10-08 07:27:58.115: E/AndroidRuntime(1909): at java.lang.StringToReal.parseDouble(StringToReal.java:248)
使用'Double.parseDouble(“你的字符串值”)'; – BBdev
如果你不会在EditText中输入任何数字,然后点击提交按钮,那么空格将转换为数字,这就是为什么你会得到[NumberFormatException](http://developer.android.com/reference/java/lang/NumberFormatException.html) ,在将String解析为Double之前,请检查我的答案如何验证。 –