Usuń wskaźnik błędu z wcześniej sprawdzonego widżetu EditText


106

Używam widżetu EditText i sprawdzam go za pomocą setError()metody EditText i sprawdza poprawność poprawnie.

Ale mam przycisk na tym samym ekranie, który przekierowuje do innej czynności. A kiedy naciskam przycisk Wstecz i wracam do ekranu, nadal pojawia się potwierdzenie.

Tak więc w OnPauseprzypadku zdarzenia związanego z aktywnością chcę usunąć walidację EditText. Jak to jest możliwe.

Odpowiedzi:


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

Ponieważ jak wspomniano w dokumentacji:

Jeśli błąd jest zerowy, komunikat o błędzie i ikona zostaną wyczyszczone.


1
Wow, więc poza NullPointerException, wartość null została naprawdę dobrze wykorzystana. LOL
ralphgabb

5

W Kotlinie:

editText.error = null

Funkcja rozszerzenia Kotlin:

Aby uczynić go bardziej czytelnym, możesz dodać tę funkcję rozszerzenia

fun EditText.clearError() {
    error = null
}

W Javie:

editText.setError(null);

3

Możesz to również zrobić za pomocą:

protected void onPause () {    
    mEditText.setError(null);//removes error
    mEditText.clearFocus();    //clear focus from edittext
}


0

W kotlinie możesz po prostu uzyskać dostęp do właściwości za pomocą składni dostępu do właściwości, która jest

protected void onPause () {
    EditText mEditText = ...; // fetch it as appropriate
    mEditText.error = null
}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.