Thông thường, bạn muốn khả năng tương thích tối đa với EditText
hành vi bình thường của.
Vì vậy, bạn không nên sử dụng android:focusable="false"
như, vâng, chế độ xem sẽ không thể lấy nét được nữa và trông rất tệ. Ví dụ: nền có thể vẽ sẽ không hiển thị trạng thái "được nhấn" nữa.
Những gì bạn nên làm thay vào đó là:
myEditText.setInputType(InputType.TYPE_NULL);
myEditText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
myEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
}
}
});
Bằng cách đặt kiểu nhập liệu thành TYPE_NULL
, bạn ngăn bàn phím phần mềm bật lên.
Bằng cách thiết lập OnClickListener
vàOnFocusChangeListener
, bạn đảm bảo rằng hộp thoại của mình sẽ luôn mở khi người dùng nhấp vào EditText
trường, cả khi nó lấy được tiêu điểm (nhấp chuột đầu tiên) và khi nhấp chuột tiếp theo.
Chỉ cần thiết lập android:inputType="none"
hoặc setInputType(InputType.TYPE_NULL)
không phải lúc nào cũng đủ. Đối với một số thiết bị, bạn cũng nên đặt android:editable="false"
bằng XML, mặc dù nó không được dùng nữa. Nếu nó không hoạt động nữa, nó sẽ chỉ bị bỏ qua (vì tất cả các thuộc tính XML không được hỗ trợ).