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.

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.


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

3

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

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

2

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

mEditText.setError(null);

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
}
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.