我有一个继承LinearLayout
的自定义视图,该视图位于ViewSwitcher
中。我想回到上一次关于Back back的视图,所以我在这个视图中覆盖了onPreKeyIme
但是当我按Back时,它似乎没有输入方法,并且活动处理Back。
我错过了什么?
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK)
return viewModel.backClicked();
return super.onKeyPreIme(keyCode, event);
}
我在if语句中有一个断点,它永远不会在那里冻结。
PS,我不允许使用碎片。
答案 0 :(得分:5)
尝试覆盖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);
}