android中的上下文菜单

android中的上下文菜单,android,menu,Android,Menu,我参考了很多文章,但我不明白“如果任何用户点击手机的菜单按钮,那么它将只显示选项菜单,而不是上下文菜单。。。 如果有其他方法通过点击手机上的菜单按钮来显示上下文菜单,那么建议我 从Android 3.0(API 11级)开始,Android驱动的设备不再需要提供专用的菜单按钮 从 所以,虽然我不建议这样做,但这里有一种方法可以解决你的问题 如果要显示上下文菜单而不是选项菜单,请在onprepareOptions菜单()中添加如下命令: 我的以下链接是您正在寻找的: i、 e。 通常,您不应该像

我参考了很多文章,但我不明白“如果任何用户点击手机的菜单按钮,那么它将只显示选项菜单,而不是上下文菜单。。。 如果有其他方法通过点击手机上的菜单按钮来显示上下文菜单,那么建议我

从Android 3.0(API 11级)开始,Android驱动的设备不再需要提供专用的菜单按钮

所以,虽然我不建议这样做,但这里有一种方法可以解决你的问题

如果要显示上下文菜单而不是选项菜单,请在
onprepareOptions菜单()
中添加如下命令:


我的以下链接是您正在寻找的:

i、 e。 通常,您不应该像用户期望的那样覆盖
菜单
行为,但是您可以使用以下内容:

/* 
 * @see android.app.Activity#onKeyDown(int, android.view.KeyEvent)
 */
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ( keyCode == KeyEvent.KEYCODE_MENU ) {
        Log.d(TAG, "MENU pressed");
        // Your context opening code....
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

如果我理解您的问题,只需覆盖longClickListener,用于应该有ContextMenu的项目。没有sam我希望当用户单击菜单按钮(移动设备中已经存在)时,它会显示上下文菜单。我认为这就是您搜索的内容:
/* 
 * @see android.app.Activity#onKeyDown(int, android.view.KeyEvent)
 */
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ( keyCode == KeyEvent.KEYCODE_MENU ) {
        Log.d(TAG, "MENU pressed");
        // Your context opening code....
        return true;
    }
    return super.onKeyDown(keyCode, event);
}