onKeyPreIme不会调用

时间:2015-09-26 10:50:17

标签: android android-layout android-custom-view keypress android-event

我有一个继承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,我不允许使用碎片。

1 个答案:

答案 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);
}