Eliminar el indicador de error de un widget EditText validado previamente

106

Estoy usando un widget EditText y lo estoy validando con el setError() método de EditText y se valida correctamente.

Pero tengo un botón en la misma pantalla que redirige a otra actividad. Y cuando presiono el botón de retroceso y regreso a la pantalla, la validación todavía aparece.

Entonces, en el OnPauseevento de actividad , quiero eliminar la validación del EditText. Como es posible.

Arun
fuente

Respuestas:

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

Porque como se menciona en la documentación:

Si el error es nulo, el mensaje de error y el icono se borrarán.

Boris Strandjev
fuente
1
Vaya, aparte de NullPointerException, el valor nulo realmente se aprovechó. LOL
ralphgabb
4

En Kotlin:

editText.error = null

Función de extensión de Kotlin:

Para hacerlo más legible, puede agregar esta función de extensión

fun EditText.clearError() {
    error = null
}

En Java:

editText.setError(null);
Gibolt
fuente
3

También puede hacerlo usando lo siguiente:

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

solo poner .setError(null)al final de EditText.

mEditText.setError(null);
Sai Gopi Me
fuente
0

En kotlin, simplemente puede acceder a la propiedad usando la sintaxis de acceso a la propiedad que es

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