如何从禁用菜单键的按钮打开菜单

时间:2014-10-02 13:06:23

标签: java android menu

PRINT SCREEN

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

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

现在,如果按下按键,它就什么都没发生,这就是我想要的。 问题是,如果我在应用程序中按下我的菜单按钮,菜单就不再显示了......

那又怎么样? 我想添加

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

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

3 个答案:

答案 0 :(得分:1)

您必须添加onCreateOptionsMenu部分。但是覆盖onKeyDown事件以禁用菜单键。像这样:

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

我不确定但这应该有效

main class(所有子类之外)中定义此变量 -

public class ... extends ... {

boolean menu = false;
...
}

然后,只要您点击打印屏幕上的menu button,请执行以下操作 -

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

}