Удалите индикатор ошибки из ранее проверенного виджета EditText

106

Я использую виджет EditText и проверяю его с помощью setError()метода EditText, и он проверяется правильно.

Но у меня есть кнопка на том же экране, которая перенаправляет на другое действие. И когда я нажимаю кнопку «Назад» и возвращаюсь к экрану, проверка все еще появляется.

Итак, в OnPauseсобытии активности я хочу удалить проверку EditText. Как это возможно.

Арун
источник

Ответы:

277
protected void onPause () {
    TextView textView = ...; // fetch it as appropriate
    textView.setError(null);
}

Потому что, как указано в документации:

Если ошибка пуста, сообщение об ошибке и значок будут удалены.

Борис Странджев
источник
1
Ничего себе, кроме NullPointerException, нулевое значение действительно нашло хорошее применение. LOL
ralphgabb
5

В Котлине:

editText.error = null

Функция расширения Kotlin:

Чтобы сделать его более читабельным, вы можете добавить эту функцию расширения

fun EditText.clearError() {
    error = null
}

В Java:

editText.setError(null);
Гибольт
источник
3

Вы также можете сделать это, используя следующее:

protected void onPause () {    
    mEditText.setError(null);//removes error
    mEditText.clearFocus();    //clear focus from edittext
}
Aj 27
источник
2

просто поместите .setError(null)в конец EditText.

mEditText.setError(null);
Саи Гопи Ме
источник
0

В kotlin вы можете просто получить доступ к свойству, используя синтаксис доступа к свойству, который

protected void onPause () {
    EditText mEditText = ...; // fetch it as appropriate
    mEditText.error = null
}
Рахул Радж
источник