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.

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.


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);

3

Sie können dies auch folgendermaßen tun:

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

2

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

mEditText.setError(null);

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
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.