我有一个继承 LinearLayout
的自定义 View ,该 View 位于 ViewSwitcher
中。我想返回到上一个按下后退的 View ,所以我在这个 View 中覆盖了 onPreKeyIme
但是当我按下后退时,它似乎没有进入方法,并且 Activity 处理后退。
我错过了什么?
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK)
return viewModel.backClicked();
return super.onKeyPreIme(keyCode, event);
}
我在 if 语句中有一个断点,它永远不会停在那里。
PS,我不允许使用 fragment 。
最佳答案
尝试覆盖 dispatchKeyEvent
方法。做这样的事情:
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if(event.getKeyCode() == KeyEvent.KEYCODE_BACK){
Log.d("Test","Back Pressed");
return viewModel.backClicked();
}
return super.dispatchKeyEvent(event);
}
关于android - onKeyPreIme 不调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32796344/