Remove the error indicator from a previously-validated EditText widget

I am using an EditText widget, and I am validating it with the setError() method of EditText and it validates correctly.

But I have an button in the same screen that redirects to another activity. And when I press back button and come back to the screen the validation still appears.

So on the activity OnPause event I want to remove the validation of the EditText. How is it possible.

66451 次浏览
protected void onPause () {
TextView textView = ...; // fetch it as appropriate
textView.setError(null);
}

Because as mentioned in the documentation:

If the error is null, the error message and icon will be cleared.

You can also do it using following :

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

just put .setError(null) at the end of the EditText.

mEditText.setError(null);

In Kotlin:

editText.error = null

Kotlin Extension Function:

To make it more readable, you could add this extension function

fun EditText.clearError() {
error = null
}

In Java:

editText.setError(null);

In kotlin you can simply acces the property using property access syntax wich is

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