Rimuovere l'indicatore di errore da un widget EditText convalidato in precedenza


106

Sto usando un widget EditText, lo sto convalidando con il setError()metodo di EditText e convalida correttamente.

Ma ho un pulsante nella stessa schermata che reindirizza a un'altra attività. E quando premo il pulsante Indietro e torno allo schermo, la convalida appare ancora.

Quindi OnPausesull'evento di attività voglio rimuovere la convalida di EditText. Come è possibile.

Risposte:


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

Perché come menzionato nella documentazione:

Se l'errore è nullo, il messaggio di errore e l'icona verranno cancellati.


1
Wow, quindi a parte NullPointerException, il valore null è stato davvero utilizzato al meglio. LOL
ralphgabb

4

A Kotlin:

editText.error = null

Funzione di estensione Kotlin:

Per renderlo più leggibile, potresti aggiungere questa funzione di estensione

fun EditText.clearError() {
    error = null
}

In Java:

editText.setError(null);

3

Puoi anche farlo usando quanto segue:

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

2

basta metterlo .setError(null)alla fine di EditText.

mEditText.setError(null);

0

In kotlin puoi semplicemente accedere alla proprietà usando la sintassi di accesso alla proprietà che è

protected void onPause () {
    EditText mEditText = ...; // fetch it as appropriate
    mEditText.error = null
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.