这个编辑文本字段代码有什么问题?

时间:2011-06-27 19:39:23

标签: android exception android-edittext

2 个答案:

答案 0 :(得分:3)

在这一行:

if(isFreeVersion && Integer.valueOf(inputMinutes.getText().toString()) > 120)

我会先检查inputMinutes.getText().toString() != ""

Integer.valueOf("") 

会抛出错误。

答案 1 :(得分:3)

嗯,我猜这是由于空指针异常或由于解析引起的异常引起的,因为您试图将edittext字段中的字符串转换为数字。因此,当用户清除文本字段时,代码会尝试将空值或空字符串更改为不可能的数字。

我不是说这是正确的答案,但这是我看到你的代码后的想法。

您可以以编程方式检查textfield是否为null,然后在textfield设置为null / empty string时写入相应的逻辑。

    @Override
    public void afterTextChanged(Editable s) 
    {
      if (inputMinutes.getText != null && !inputMinutes.getText.equals("")) {
        // TODO Auto-generated method stub
        if(isFreeVersion && Integer.valueOf(inputMinutes.getText().toString()) > 120)
            showToast("The free version is limited to 120 minutes.");
        else
        {
            editor.putLong("neglectedPeriodMsecs", Long.parseLong(s.toString())*60000);
            editor.commit();
        }
      }
    }

如果它是一个nullpointer异常,那么你可以使用try catch块捕获它。

如果这些不正确,那么如果您从logcat发布堆栈跟踪会显示错误日志,以便其他人可以看到导致此错误的内容,将会有所帮助。