如何完全禁用Android上的菜单按钮?

时间:2012-07-31 09:15:11

标签: android android-button android-menu

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

我不希望菜单按钮的行为如此,所以我的问题是:

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

我试过了:

@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); 
    }

}

菜单按钮仍在工作......

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

5 个答案:

答案 0 :(得分:10)

您必须返回true才能显示菜单;如果你返回false,它将不会显示。 所以我猜这会奏效:

@Override
 public boolean onPrepareOptionsMenu (Menu menu) {
     .... .....
     return false;
 }

答案 1 :(得分:3)

您必须返回 false

@Override
public boolean onMenuOpened(final int featureId, final Menu menu) {
    super.onMenuOpened(featureId, menu);
    return false;
}

答案 2 :(得分:0)

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

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

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

答案 3 :(得分:0)

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) 
{
     return (keyCode == KeyEvent.KEYCODE_MENU ? true : super.onKeyDown(keyCode, event));
}

答案 4 :(得分: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); 
}