删除输入类型为numberDecimal的EditText文本

时间:2018-08-08 02:05:21

标签: android

所以我在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("");

这会导致错误。我只是不知道该如何解决该问题。

2 个答案:

答案 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();
    }