Видаліть індикатор помилки з попередньо перевіреного віджета EditText


106

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

Але у мене є кнопка на тому ж екрані, яка переспрямовує на іншу діяльність. І коли я натискаю кнопку назад і повертаюся на екран, перевірка все ще з'являється.

Тож у OnPauseвипадку події я хочу видалити перевірку EditText. Як це можливо.

Відповіді:


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

Тому що, як зазначено в документації:

Якщо помилка є нульовою, повідомлення про помилку та значок буде очищено.


1
Нічого так, окрім NullPointerException, нульове значення дійсно було використане. LOL
ralphgabb

4

У Котліні:

editText.error = null

Функція розширення Котліна:

Щоб зробити його більш зрозумілим, ви можете додати цю функцію розширення

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.