我必须动态隐藏菜单项。 下面我写了menu.xml文件代码
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single" android:id="@+id/menu1">
<item
android:id="@+id/Admin"
android:title="Admin" />
</group>
<group android:checkableBehavior="single" android:id="@+id/menu2">
<item
android:id="@+id/Worker"
android:title="Worker" />
</group>
</menu>
我必须在使用Worker记录时隐藏Admin菜单。
答案 0 :(得分:3)
进行以下更改将帮助您在程序中动态隐藏/显示菜单
private Menu menuList;
.
.
.
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
this.menuList = menu;
getMenuInflater().inflate(R.menu.options, menu);
return true;
}
// ...
private void hideMenu()
{
MenuItem item = menulist.findItem(R.id.submitmenu);
item.setVisible(false);
}
private void showMenu()
{
MenuItem item = menulist.findItem(R.id.submitmenu);
item.setVisible(true);
}
答案 1 :(得分:2)
试试这个。
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuItem menu1 = menu.findItem(R.id.menu1);
menu1.setVisible(false);
MenuItem menu2 = menu.findItem(R.id.menu2);
menu2.setVisible(false);
return true;
}
答案 2 :(得分:1)
试试这个
MenuItem menuItemLogout = nvDrawer.getMenu().findItem(R.id.nav_logout);
menuItemLogout.setVisible(true);
答案 3 :(得分:1)
在任何地方调用方法..
private void hideItem()
{
Menu nav_Menu = navigationView.getMenu();
nav_Menu.findItem(R.id.nav_adduser).setVisible(false);
}
我希望这可以帮到你