所以我在RecyclerView中,其中包含输入类型为“ numberDecimal”的EditText列表
编写代码时
Bundle.main.object(forInfoDictionaryKey: "API_KEY") as! String
=> "abcdefg"
或
if let str = self.object(forInfoDictionaryKey: key) as? String {
return str.replacingOccurrences(of: "\"", with: "")
}
或
editText.getText().clear();
我得到一个java.lang.NumberFormatException:空字符串。但是在用户界面方面,我确实需要editText为空而不是“ 0”。或“ 0.0”。另外,如果用户要删除所有内容,则必须(在可能的情况下)向编辑文本添加0来处理该异常。在这种情况下,我会没事的,但我确实会尝试解决此问题的方法。
我意识到代码曾经试图做到这一点
editText.setText("");
这会导致错误。我只是不知道该如何解决该问题。
答案 0 :(得分:1)
editText.setText("");
应该可以正常工作并清除EditText
。由于Integer.parseInt("")
不是有效的int,因此问题出在""
上。代替执行此操作,请检查您的editText.getText().toString()
是否为空,如下所示:
if(!editText.getText().toString().isEmpty()){
//do the parsing
}
另外,您的输入类型为numberDecimal
,并且您尝试将其解析为Integer
,因此建议您使用Double.parseDouble
。
答案 1 :(得分:0)
编写代码时
editText.getText().clear();
或
editText.setText("");
或
editText.setText(null);
editText.getText().toString()
的结果应为""
。然后,您可以这样做:
String text = editText.getText().toString();
try {
int result = Integer.parseInt(TextUtils.isEmpty(text)?"0":text);
} catch (NumberFormatException e) {
e.printStackTrace();
}