可以editText.getText()。toString()。trim()。length()是否曾生成NullPointerException?

时间:2017-01-04 11:07:25

标签: android nullpointerexception android-edittext

我的应用中有很多EditText,我使用下面的代码检查EditText是否为空。

if (etEditText.getText().toString().trim().length() > 0)

EditText已正确初始化但我没有添加空检查,因为我读到getText().toString()永远不会返回null。假设NullPointerException被正确初始化,上面的代码可以生成EditText吗?我想在任何情况下都保持安全。

3 个答案:

答案 0 :(得分:1)

这不是检查空字符串的推荐方法。试试这个:

String text = etEditText.getText().toString();
if(!text.isEmpty()) {  
    ....
}

关于NullPointerException的其余部分, EditText.getString()很少生成,但有时会生成,所以最好用try和catch块封装代码,如下所示:

try {
    String text = etEditText.getText().toString();
    if(!text.isEmpty()) {   
    ...
    }
} catch(NullPointerException e) {
    e.printStackTrace();
}

答案 1 :(得分:1)

null检查的正确方法如下。

if (etEditText != null) {
    String str = etEditText.getText().toString();
    if (!TextUtils.isEmpty(str) && (str = str.trim()).length() > 0) {
        // str will be trimmed text
        // Do your work here
    }
}

答案 2 :(得分:0)

String value = textInputEditText.getText().toString().trim();
        if (value.isEmpty()) {
            textInputLayout.setError(message);
            hideKeyboardFrom(textInputEditText);
            return false;
        } else {
            textInputLayout.setErrorEnabled(false);
        }