Flá*_*ria 22 android listener android-edittext
如何在EditText上键入时按下后退键的事件?当显示虚拟键盘并且用户按下时,它将被隐藏.我想处理此事件,但在EditText中设置OnKeyListener没有帮助.
Flá*_*ria 71
谢谢Reno.它似乎可行,但我设法以不同的方式解决它.
我重写了EditText的onKeyPreIme(int keyCode,KeyEvent事件).此方法拦截IME上的按键.= d
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK &&
event.getAction() == KeyEvent.ACTION_UP) {
// do your stuff
return false;
}
return super.dispatchKeyEvent(event);
}
Run Code Online (Sandbox Code Playgroud)
Ren*_*eno 15
这不起作用?
edText.setOnKeyListener(new OnKeyListener()
{
public boolean onKey(View v, int keyCode, KeyEvent event)
{
if (event.getAction() == KeyEvent.ACTION_DOWN)
{
//check if the right key was pressed
if (keyCode == KeyEvent.KEYCODE_BACK)
{
return true;
}
}
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
编辑:
好吧这令人沮丧.Android在关闭qwerty键盘时不发送IME事件.这是 我遇到的唯一解决方法.我希望它对你也有用.
我不知道为什么会出现这种情况,但如果您只是纯粹覆盖自定义EditText上的onKeyPreIme,则OnKeyListener可以正常工作.
customEditText.setOnKeyListener((v, keyCode, event) -> {
if(event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
getPresenter().onBackPressed();
break;
}
}
return false;
});
Run Code Online (Sandbox Code Playgroud)
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
return super.dispatchKeyEvent(event);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37458 次 |
| 最近记录: |