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.

Arun
la source

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.

Boris Strandjev
la source
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);
Gibolt
la source
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
}
Aj 27
la source
2

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

mEditText.setError(null);
Sai Gopi moi
la source
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
}
Rahul Raj
la source