Удалите индикатор ошибки из ранее проверенного виджета 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
}


0

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

protected void onPause () {
    EditText mEditText = ...; // fetch it as appropriate
    mEditText.error = null
}
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.