【发布时间】:2016-01-03 17:26:17
【问题描述】:
我想在EditText custom 上捕捉软键盘中的退格/删除按钮事件。
我该怎么做?
我尝试了这些解决方案,但它们对我不起作用:
Android custom EditText and back button override
Get back key event on EditText
Android EditText delete(backspace) key event
感谢您的帮助!
编辑: 我使用 DispatchKeyEvent 函数找到了解决该问题的方法:
@Override public boolean dispatchKeyEvent(@NonNull KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN
&& event.getKeyCode() == KeyEvent.KEYCODE_DEL) {
// ...
}
return super.dispatchKeyEvent(event);
}
【问题讨论】:
-
“不工作”是什么意思?你在哪里测试?在模拟器还是在设备上?
-
当我按下软键盘上的任何按钮时,函数中的代码没有被执行(在所有条件之外)。我用我的设备(三星 Galaxy S5)进行了测试。
-
检查KeyEvent class 的文档,它指出捕获软输入是不可靠的。在
Activity类中覆盖onBackPressed()并在其中做你需要做的事情可能会更好。 编辑:当然,除非您的意思是“将光标向后移动一个空格”,而不是标准的后退导航键。 -
@PPartisan onBackPressed 在打开软输入时将无济于事
-
@PPartisan 我想要标准的后退按钮来删除我的编辑文本中的一个字符,但要符合我的规则
标签: android input android-edittext