2014-10-02 65 views
2

PRINT SCREEN如何从一个按钮禁用菜单键

我愿意阻止用户使用菜单键打开菜单的可能性打开菜单。 只能从我的应用程序中的菜单按钮打开菜单。 所以我删除了这部分代码:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

现在,如果我按下按键就偏偏不信邪,这就是我想要的。 问题是,如果我按下我的菜单按钮的应用程序,菜单不会显示了...

那么是什么呢? 我想添加

getMenuInflater().inflate(R.menu.main, menu); 

在我的监听器上的菜单按钮,但这里是错误,我不明白怎么做......什么建议吗? 谢谢!

+0

我假设你有这个'菜单'变量声明和instanciated在你的代码。你有没有尝试添加修饰符final?既然你在一个匿名的内部类中,你使用的变量需要是最终的。 – 2014-10-02 13:12:44

+0

ehm ..不,我没有宣布/ instanciated该菜单变量(一个用红色下划线)...问题是,我不知道该怎么做,你知道如何? 而我的代码放在OnResume(); – ernestocattaneo 2014-10-02 13:22:00

回答

1

样式模板。如果SDK < Jelly Bean使用ActionBar的样式。

+0

是啊!这就是我所做的!谢谢 – ernestocattaneo 2015-02-17 10:55:39

0

我不知道,但这个应该工作

main class这个变量(所有子类外) - 每当你在menu button点击打印屏幕上

public class ... extends ... { 

boolean menu = false; 
... 
} 

,然后执行以下 -

@Override 
public void onClick(View v){ 
    menu = true; 
    openOptionMenu(); 
} 

而在你onCreateOptionMenu,做到这一点 -

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 

    if(menu){ 
    getMenuInflater().inflate(R.menu.main, menu); 
    } 
    menu = false; 
    return true; 

} 
+0

已经尝试好友,但后来我无法从我的菜单按钮打开菜单(我的活动中有一个叫做菜单的图标按钮,用户可以打开菜单)... – ernestocattaneo 2014-10-02 13:19:57

1

您必须添加onCreateOptionsMenu部分。但是重写onKeyDown事件来禁用菜单键。像这样:

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