如何在操作栏中隐藏一些菜单?

时间:2016-04-04 08:38:56

标签: android android-optionsmenu

在我的应用程序中,我有近8个菜单,我有两种类型的用户管理员和客户端

对于Admin我需要显示所有8个manus,对于用户我需要为用户显示2个菜单

因为我有这个

<input type="button" value="{{i.msg}}"/> 

我的代码将在恢复后,我正在添加一个

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.m_mymenu, menu);
    return true;      
}

所以这里在选项菜单中我想只为用户显示两个,为管理员显示8 ..

但是当我选择它作为用户我并且能够看到所有菜单并且只有两个正在工作..所以在这里我想要显示只有工作菜单remaning应该隐藏..

任何人都可以建议我这样......

这里的菜单来自Android菜单,而不是动态菜单......

2 个答案:

答案 0 :(得分:2)

在onCreateOptionsMenu()中,检查条件并按以下方式显示或隐藏它:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater menuInflater = getMenuInflater();
    menuInflater.inflate(R.layout.m_mymenu, menu);


SharedPreferences s = getSharedPreferences(my_New_SP, 0);
HashMap<String, String> map= (HashMap<String, String>) s.getAll();

if (map.get("usage").equals("Admin"))
 {
 MenuItem item = menu.findItem(R.id.usermenu1);
 item.setVisible(false); 
 //your all user menu's same like above

}


else if (map.get("usage").equals("User"))
{
 MenuItem item = menu.findItem(R.id.adminmenu1);
 item.setVisible(false); 
 //your all admin menu's same like above
}

  return true;
}

答案 1 :(得分:0)

private Menu menu1;

现在在oncreate做类似的事情

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater menuInflater = getMenuInflater();
        menuInflater.inflate(R.layout.menu, menu);
        menu1 = menu.findItem(R.id.web1);
        menu1.setVisible(false);
        return true;
    }

现在您可以隐藏/显示menu1。为其他选项做同样的事情