3

出于某种原因,如果我在我的应用程序加载内容时长按我的菜单按钮,它就像我按下返回键一样停止。

我不希望菜单按钮像这样,所以我的问题是:

如何完全禁用菜单按钮?我的应用程序中不需要它,我只想将其关闭。

我试过:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event){

     if (keyCode == KeyEvent.KEYCODE_BACK){
        onBackPressed();
     }


    if (keyCode == KeyEvent.KEYCODE_MENU){
        return true;
    } 
    else{
        return super.onKeyDown(keyCode, event); 
    }

}

菜单按钮仍然有效...

任何帮助将不胜感激!谢谢。

4

5 回答 5

10

您必须返回 true 才能显示菜单;如果您返回 false 则不会显示。所以我猜这会起作用:

@Override
 public boolean onPrepareOptionsMenu (Menu menu) {
     .... .....
     return false;
 }
于 2012-07-31T09:17:13.127 回答
3

您必须返回false

@Override
public boolean onMenuOpened(final int featureId, final Menu menu) {
    super.onMenuOpened(featureId, menu);
    return false;
}
于 2015-05-28T05:58:12.480 回答
0

我也不得不禁用菜单按钮,我所做的是添加以下行:

public boolean dispatchKeyEvent(KeyEvent event) {
   return true;
}

这基本上告诉操作系统所有按下的按钮都已处理,因此无需采取任何措施。在 onCreate 方法之后添加它。

于 2014-09-26T15:20:52.617 回答
0
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) 
{
     return (keyCode == KeyEvent.KEYCODE_MENU ? true : super.onKeyDown(keyCode, event));
}
于 2014-12-02T07:05:07.600 回答
0

您发布的应该可以使用,
仍然尝试一下,它应该可以使用

@Override  
public boolean onKeyDown(int keyCode, KeyEvent event) {  
     final int keyCode = event.getKeyCode();  
     if (keyCode == KeyEvent.KEYCODE_MENU){
         return true;
     } 

     return super.onKeyDown(keyCode, event); 
}
于 2015-10-02T06:29:21.827 回答