tạo một EditText tùy chỉnh như làm theo với một giao diện:
public class CustomEditText extends EditText {
public void setHandleDismissingKeyboard(
handleDismissingKeyboard handleDismissingKeyboard) {
this.handleDismissingKeyboard = handleDismissingKeyboard;
}
private handleDismissingKeyboard handleDismissingKeyboard;
public interface handleDismissingKeyboard {
public void dismissKeyboard();
}
@SuppressLint("NewApi")
public CustomEditText(Context context, AttributeSet attrs,
int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
// TODO Auto-generated constructor stub
}
public CustomEditText(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public CustomEditText(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public CustomEditText(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
// TODO Auto-generated constructor stub
}
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK
&& event.getAction() == KeyEvent.ACTION_UP) {
handleDismissingKeyboard.dismissKeyboard();
return true;
}
return super.dispatchKeyEvent(event);
}
sau đó trong hoạt động của bạn tạo khởi CustomEditText và sử dụng của bạn:
customEditText.setHandleDismissingKeyboard(this);
sau đó thực hiện lớp và ghi đè phương thức và đặt mã của bạn trong rằng
để biết thêm thông tin về câu trả lời của tôi tất cả những gì bạn cần là onKeyPreIme
, bạn có thể ghi đè điều đó trong lớp EditText của mình (như tôi gửi cho bạn) để xử lý tất cả khóa trên đó, như phím quay lại hoặc bất kỳ phím nào khác, Tôi đặt một giao diện bên trong trong lớp tùy chỉnh để gọi lại từ lớp này đến từng hoạt động hoặc lớp mà bạn muốn, bạn có thể làm điều đó với phương pháp tĩnh quá, và như bạn muốn ngăn chặn từ bỏ bàn phím, bạn chỉ có thể trả lại true
trong đó.
cho việc sử dụng CustomEditText
bạn có thể sử dụng xml hoặc trong java, xác định đó và khởi tạo mà như widget khác (Button, TextView, ...), và chỉ khác nhau là bạn cần xác định này trong xml của bạn như:
<yourPackage.CustomEditText ..... />
@HareshChhelana đọc câu hỏi hoàn toàn –
ý định của tôi là không đóng/ẩn phím chức năng. Nó để ngăn chặn việc đóng bàn phím trên nút quay lại –
Đây không phải là một câu hỏi trùng lặp. Tại sao các bạn không đọc kỹ câu hỏi và chỉ đơn giản là đánh dấu nó là trùng lặp? –