我在xml中有这个。
<EditText
android:id="@+id/creditlimitfield2"
android:hint="0"
android:inputType="numberDecimal" />
因此,edittext的默认值为0。
在代码中,我有这个
creditlimit = (EditText) findViewById(R.id.creditlimitfield2);
double credit_limit = Double.valueOf(creditlimit.getText().toString());
或者,我尝试过:
double credit_limit = Double.parseDouble(creditlimit.getText().toString());
和
double credit_limit = new Double(creditlimit.getText().toString());
当我运行程序时,它会给出错误
Numberformatexception. Invalid double "".
请注意,该字段不为空。任何建议都会有所帮助。
我见过许多问题,几乎与它相似,但答案却很少,而且没有一个能帮我解决问题。因此,请不要将其标记为“类似问题”而不检查其他问题。
答案 0 :(得分:1)
getText()
未返回android:hint
内的值。所以你试图将空字符串转换为double。请改用android:text
属性。
<EditText
android:id="@+id/creditlimitfield2"
android:text="0"
android:inputType="numberDecimal" />
答案 1 :(得分:0)
看起来creditlimit.getText().toString()
不会返回有效的double值。确保在EditText
中输入有效的双精度。
Numberformatexception. Invalid double ""
空字符串不是有效的双精度数。
另外我猜你刚刚初始化后确保你在按钮点击或onResume
double credit_limit = Double.valueOf(creditlimit.getText().toString())
如果你想要默认值,请点击blackbelt的帖子。
答案 2 :(得分:0)
Sting limit=creditlimit.getText().toString();
double credit_limit =0;
if(limit!=null && !limit.isEmpty()){
credit_limit = Double.parseDouble(limit);
}