Remova o indicador de erro de um widget EditText previamente validado

106

Estou usando um widget EditText e estou validando-o com o setError()método de EditText e ele valida corretamente.

Mas tenho um botão na mesma tela que redireciona para outra atividade. E quando eu pressiono o botão voltar e volto para a tela a validação ainda aparece.

Portanto, no OnPauseevento de atividade , desejo remover a validação do EditText. Como isso é possível.

Uma corrida
fonte

Respostas:

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

Porque conforme mencionado na documentação:

Se o erro for nulo, a mensagem de erro e o ícone serão apagados.

Boris Strandjev
fonte
1
Uau, além de NullPointerException, o valor null foi realmente bem utilizado. LOL
ralphgabb
4

Em Kotlin:

editText.error = null

Função de extensão Kotlin:

Para torná-lo mais legível, você pode adicionar esta função de extensão

fun EditText.clearError() {
    error = null
}

Em Java:

editText.setError(null);
Gibolt
fonte
3

Você também pode fazer isso usando o seguinte:

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

basta colocar .setError(null)no final do EditText.

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

No kotlin, você pode simplesmente acessar a propriedade usando a sintaxe de acesso à propriedade que é

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