在OnCreateOptions菜单()之后,如何在Android中添加菜单项
我遇到了一个严重的问题。我想在用户成功登录后添加菜单项 开始时,我使用以下方法使其可用 下面的代码现在不起作用,我提到它是为了说明我的想法在OnCreateOptions菜单()之后,如何在Android中添加菜单项,android,menu,Android,Menu,我遇到了一个严重的问题。我想在用户成功登录后添加菜单项 开始时,我使用以下方法使其可用 下面的代码现在不起作用,我提到它是为了说明我的想法 Private Menu mymenu; public boolean onCreateOptionsMenu(Menu menu) { // TODO Auto-generated method stub super.onCreateOptionsMenu(menu); mymenu=menu;
Private Menu mymenu;
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
super.onCreateOptionsMenu(menu);
mymenu=menu;
return super.onCreateOptionsMenu(menu);
}
public void process(){
MenuInflater inflater=this.getMenuInflater();
inflater.inflate(R.menu.my_menu,mymenu);
}
似乎这个想法在我记忆中起了作用。但在做了一些我记不起来的事情后,它就不起作用了
调试之后,我发现这是因为mymenu=null
我猜有一种方法可以设置mymenu=menu
有人能帮忙吗?有一种方法,可以覆盖并动态更改菜单。有一种方法,可以覆盖并动态更改菜单。该代码可能存在的问题是调用super两次 要执行所需操作,可以覆盖OnPrepareOptions菜单,并将所有不需要的菜单项上的可见性设置为hidden,直到您的状态达到要添加它的程度
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuItem menuItem = menu.findItem(R.id.<id of menuitem>);
menuItem.setVisible(<condition>);
return true;
}
只需使用OnCreateOptions菜单中的标准代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.<id of menu with all items you'll need>, menu);
return true;
}
该代码可能存在的问题是调用super两次 要执行所需操作,可以覆盖OnPrepareOptions菜单,并将所有不需要的菜单项上的可见性设置为hidden,直到您的状态达到要添加它的程度
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuItem menuItem = menu.findItem(R.id.<id of menuitem>);
menuItem.setVisible(<condition>);
return true;
}
只需使用OnCreateOptions菜单中的标准代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.<id of menu with all items you'll need>, menu);
return true;
}
是的,这很有用。但我仍然想知道这不起作用的原因。无论如何,非常感谢:您可以尝试和测试的是,默认情况下添加所有可能的菜单项,在这个方法中,根据您的需求设置不需要的项的可见性。太好了。那是另一种方式。谢谢buddyYeah,这很有用。但我仍然想知道这不起作用的原因。无论如何,非常感谢:您可以尝试和测试的是,默认情况下添加所有可能的菜单项,在这个方法中,根据您的需求设置不需要的项的可见性。太好了。那是另一种方式。谢谢你,伙计