双重无效.Android中的数字格式例外



我在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 "".

请注意,该字段不是空的。任何建议都会有所帮助。


我看到了许多与之相似的问题,答案较少,没有一个可以帮助解决我的病情。因此,请不要在不检查其他问题的情况下将其标记为"类似问题"。

getText()不会返回 android:hint中的值。因此,您正在尝试将一个空字符串转换为double。改用android:text属性。

<EditText
    android:id="@+id/creditlimitfield2"
    android:text="0"
    android:inputType="numberDecimal" />

看起来creditlimit.getText().toString()没有返回有效的双重值。确保您在EditText中输入有效的双重。

Numberformatexception. Invalid double ""

空字符串不是有效的双重。

也我想您只是在初始化之后确保您从deDittext上单击" deDittext"或 onResume

中获得文字
double credit_limit = Double.valueOf(creditlimit.getText().toString())

如果您想要默认值遵循Blackbelt的帖子。

尝试此
Sting limit=creditlimit.getText().toString(); double credit_limit =0; if(limit!=null && !limit.isEmpty()){ credit_limit = Double.parseDouble(limit); }

最新更新