如何检测用户何时在其Android设备上按"菜单"键?

use*_*613 4 android listener android-activity

我知道我可以覆盖onBackPressed()更高的API级别来检测是否按下了后退键.菜单按钮有类似的方法吗?我不是检查KeyEvents中的keycode的忠实粉丝.谢谢!

Han*_*nry 16

你在寻找这个????:

public boolean onKeyDown(int keyCode, KeyEvent event) { 
        if (keyCode == KeyEvent.KEYCODE_MENU) {
            //do your work
            return true;
        }
        return super.onKeyDown(keyCode, event); 
    } 
Run Code Online (Sandbox Code Playgroud)

  • 如果你看一下Activity源代码的前几行,你会看到onBackPressed是在后退按钮keyCode之后调用的:http://grepcode.com/file/repository.grepcode.com/java/ext/com .google.android /机器人/ 4.3_r2.1 /机器人/应用/ Activity.java#Activity.onKeyDown%28int%2Candroid.view.KeyEvent%29 (2认同)

Bob*_*ke4 5

如果您只是想为菜单按钮创建一个关键监听器,那么您应该重写onKeyDown并检查密钥代码.既然你已经指出你不是那个人的忠实粉丝那么你也可以覆盖onPrepareOptionsMenu,每次点击菜单按钮时都会调用它,并向用户显示一个菜单.如果你没有在onCreateOptionsMenu方法中提供一个菜单,我不确定是否会调用它.