Entfernen Sie die Fehleranzeige aus einem zuvor validierten EditText-Widget

106

Ich verwende ein EditText-Widget und validiere es mit der setError()Methode von EditText und es wird korrekt validiert.

Ich habe jedoch eine Schaltfläche auf demselben Bildschirm, die zu einer anderen Aktivität weiterleitet. Und wenn ich die Zurück-Taste drücke und zum Bildschirm zurückkehre, wird die Validierung weiterhin angezeigt.

Daher OnPausemöchte ich beim Aktivitätsereignis die Validierung des EditText entfernen. Wie ist es möglich.

Arun
quelle

Antworten:

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

Denn wie in der Dokumentation erwähnt:

Wenn der Fehler null ist, werden die Fehlermeldung und das Symbol gelöscht.

Boris Strandjev
quelle
1
Wow, abgesehen von NullPointerException wurde der Nullwert wirklich gut genutzt. LOL
Ralphgabb
4

In Kotlin:

editText.error = null

Kotlin-Erweiterungsfunktion:

Um die Lesbarkeit zu verbessern, können Sie diese Erweiterungsfunktion hinzufügen

fun EditText.clearError() {
    error = null
}

In Java:

editText.setError(null);
Gibolt
quelle
3

Sie können dies auch folgendermaßen tun:

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

einfach .setError(null)am Ende des EditText setzen.

mEditText.setError(null);
Sai Gopi ich
quelle
0

In kotlin können Sie einfach auf die Eigenschaft zugreifen, indem Sie die Eigenschaftszugriffssyntax verwenden, die lautet

protected void onPause () {
    EditText mEditText = ...; // fetch it as appropriate
    mEditText.error = null
}
Rahul Raj
quelle