如何动态隐藏菜单项

时间:2017-11-07 05:39:34

标签: android

我必须动态隐藏菜单项。 下面我写了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菜单。

4 个答案:

答案 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);
    }

我希望这可以帮到你