Supprimer l'indicateur d'erreur d'un widget EditText précédemment validé


106

J'utilise un widget EditText, je le valide avec la setError()méthode EditText et il valide correctement.

Mais j'ai un bouton dans le même écran qui redirige vers une autre activité. Et lorsque j'appuie sur le bouton de retour et que je reviens à l'écran, la validation apparaît toujours.

Donc, sur l' OnPauseévénement d' activité , je souhaite supprimer la validation du EditText. Comment est-ce possible.

Réponses:


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

Parce que comme mentionné dans la documentation:

Si l'erreur est nulle, le message d'erreur et l'icône seront effacés.


1
Wow, donc à part NullPointerException, la valeur null a vraiment été utilisée à bon escient. LOL
ralphgabb

4

À Kotlin:

editText.error = null

Fonction d'extension Kotlin:

Pour le rendre plus lisible, vous pouvez ajouter cette fonction d'extension

fun EditText.clearError() {
    error = null
}

En Java:

editText.setError(null);

3

Vous pouvez également le faire en utilisant les éléments suivants:

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

2

juste mettre .setError(null)à la fin de l'EditText.

mEditText.setError(null);

0

Dans kotlin, vous pouvez simplement accéder à la propriété en utilisant la syntaxe d'accès à la propriété qui est

protected void onPause () {
    EditText mEditText = ...; // fetch it as appropriate
    mEditText.error = null
}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.