Trong một trong các hoạt động của tôi, tôi có ba nút EditText
và nút OK. OnFocusChangeListener
được đặt thành ba số EditText
s. Trình nghe phải kích hoạt mỗi khi tiêu điểm bị mất.OnFocusChange không phải lúc nào cũng hoạt động
Chuyển đổi giữa EditText
s hoạt động hoàn hảo. Nhưng nếu người dùng nhấn nút OK thì không có thay đổi lấy nét (mất tiêu điểm) được kích hoạt cho EditText
mà người dùng đã tập trung trước khi nhấn nút.
Mã của tôi có vấn đề gì?
private class MyOnFocusChangeListener implements OnFocusChangeListener {
private EditText editText;
public MyOnFocusChangeListener(final EditText editText) {
super();
this.editText = editText;
}
@Override
public void onFocusChange(final View view, final boolean isFocused) {
if (!isFocused) {
if (editText == editText1) {
// Do a calculation
} else if (editText == editText2) {
// Do another calculation
} else if (editText == editText3) {
// Do a different calculation
}
}
}
}
@Override
public void onCreate(final Bundle bundle) {
// ...
editText1.setOnFocusChangeListener(new MyOnFocusChangeListener(editText1));
editText2.setOnFocusChangeListener(new MyOnFocusChangeListener(editText2));
editText3.setOnFocusChangeListener(new MyOnFocusChangeListener(editText3));
// ...
}
Điều này có thể kích hoạt OnFocusChange trên cả ba EditText vì vậy tôi không thể sử dụng nó. Nhưng điều này đã giúp tôi tìm một cách tốt hơn. Bây giờ tôi lưu trữ EditText để lấy tiêu điểm trong một thành viên của lớp và trên OnClick của nút, tôi xóa tiêu điểm của EditText cụ thể đó. Điều đó hoạt động như một sự quyến rũ. Cảm ơn rất nhiều. –