无法捕获android后退按钮事件

cod*_*der 5 android button keyevent back-button

我想抓住Android的后退按钮事件.我知道在表单上已有很多关于此的内容,但是,我的代码不能像给出的示例那样工作.这是我捕获事件的代码片段:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
    if(keyCode == KeyEvent.KEYCODE_BACK){
        Log.d(TAG, "back key captured");
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)

我也试过这个:

@Override
public void onBackPressed(){
    Log.d(TAG, "in onBackPressed");
    finish();
}
Run Code Online (Sandbox Code Playgroud)

任何事件被触发的LogCat输出都没有显示出来.有人知道可能的原因吗?

谢谢.

Bri*_*ian 17

另一种方法是覆盖该public void onBackPressed()方法.它更直接,更容易.

  • 真?这很奇怪,你是从一个普通的Activity做到这一点,没有任何东西出现?也许在按下后退按钮时尝试让它显示吐司只是为了仔细检查您的调试器没有问题. (3认同)

Moh*_*lah 8

要接收键盘事件,View必须具有焦点.强制使用:

view.setFocusableInTouchMode(True);
view.requestFocus();
Run Code Online (Sandbox Code Playgroud)