Hapus indikator kesalahan dari widget EditText yang divalidasi sebelumnya

106

Saya menggunakan widget EditText, dan saya memvalidasinya dengan setError()metode EditText dan memvalidasi dengan benar.

Tetapi saya memiliki tombol di layar yang sama yang mengarahkan ke aktivitas lain. Dan ketika saya menekan tombol kembali dan kembali ke layar validasi masih muncul.

Jadi pada OnPauseacara aktivitas saya ingin menghapus validasi EditText. Bagaimana itu mungkin.

Arun
sumber

Jawaban:

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

Karena seperti yang disebutkan dalam dokumentasi:

Jika kesalahannya nol, pesan dan ikon kesalahan akan dihapus.

Boris Strandjev
sumber
1
Wow, jadi selain NullPointerException, nilai null benar-benar dimanfaatkan dengan baik. LOL
ralphgabb
4

Di Kotlin:

editText.error = null

Fungsi Ekstensi Kotlin:

Agar lebih mudah dibaca, Anda bisa menambahkan fungsi ekstensi ini

fun EditText.clearError() {
    error = null
}

Di Jawa:

editText.setError(null);
Gibolt
sumber
3

Anda juga dapat melakukannya dengan menggunakan berikut ini:

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

cukup letakkan .setError(null)di akhir EditText.

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

Di kotlin Anda cukup mengakses properti menggunakan sintaks akses properti

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