如何解决根据具有空值的EditText处理TextView的更改
我在名为“ deviseValue”的EditText上使用TextChangedListener
,并对其进行操作以显示sellValue
和buyValue
中其他两个TextView
的值,如下所示:如下:
deviseValue.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s,int start,int count,int after) {}
@Override
public void onTextChanged(CharSequence s,int before,int count) {}
@Override
public void afterTextChanged(Editable s) {
Double dDeviseValue = Double.valueOf(deviseValue.getText().toString());
Double sellResult = dDeviseValue*dSellValue;
Double buyResult = dDeviseValue*dBuyValue;
sellValue.setText(sellResult.toString());
buyValue.setText(buyResult.toString());
}
});
当我删除所有deviseValue的值(即EMPTY)时,一切正常,但是我的应用程序崩溃了!
如何处理这种情况,以便当用户删除所有值时,deviseValue会自动变为>1。?
解决方法
应用程序崩溃,因为您尝试将字符串值从edittext转换为double值。但是,当您清除edittext时,deviseValue.getText()。toString()为“”(空)。这就是为什么出现NumberFormatException的原因。
在将deviseValue.getText()。toString()转换为double之前,请尝试检查它。 例如:
String dDeviseText = etEmail.getText().toString();
Double dDeviseValue = Double.valueOf(dDeviseText.isEmpty() ? "1" : dDeviseText);
并且您应该避免为此编辑文本输入非数字字符。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。