Xóa chỉ báo lỗi khỏi tiện ích con EditText đã được xác thực trước đó


106

Tôi đang sử dụng tiện ích EditText và tôi đang xác thực nó bằng setError()phương pháp EditText và nó xác thực chính xác.

Nhưng tôi có một nút trong cùng một màn hình chuyển hướng đến một hoạt động khác. Và khi tôi nhấn nút quay lại và quay lại màn hình, xác thực vẫn xuất hiện.

Vì vậy, trên OnPausesự kiện hoạt động, tôi muốn xóa xác thực của EditText. Làm thế nào là nó có thể.

Câu trả lời:


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

Bởi vì như đã đề cập trong tài liệu:

Nếu lỗi là rỗng, thông báo lỗi và biểu tượng sẽ bị xóa.


1
Chà, ngoài NullPointerException, giá trị null đã thực sự được sử dụng tốt. LOL
Liên minh huyền thoại

4

Trong Kotlin:

editText.error = null

Chức năng mở rộng Kotlin:

Để làm cho nó dễ đọc hơn, bạn có thể thêm chức năng mở rộng này

fun EditText.clearError() {
    error = null
}

Trong Java:

editText.setError(null);

3

Bạn cũng có thể làm điều đó bằng cách sử dụng sau:

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

2

chỉ cần đặt .setError(null)ở cuối EditText.

mEditText.setError(null);

0

Trong kotlin, bạn có thể chỉ cần truy cập thuộc tính bằng cách sử dụng cú pháp truy cập thuộc tính, wich là

protected void onPause () {
    EditText mEditText = ...; // fetch it as appropriate
    mEditText.error = null
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.