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

How to hide some menus in actionbar?

在我的应用程序中,我有将近 8 个菜单,并且我有两种类型的用户 admin 和 client

对于管理员,我需要显示所有 8 个手册,对于用户,我需要为用户显示 2 个菜单

为此我给了这个

@Override
public boolean onCreateOptionsMenu(Menu menu) {

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

在我的代码出现在简历上之后,我将添加下面一个

  @Override
  public boolean onOptionsItemSelected(MenuItem item) {

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

    int id = item.getItemId();

 if (map.get("usage").equals("Admin"))
 {
    if (id == R.id.abc) {
        Intent mypIntent = new Intent(this, Myp.class);
        startActivity(mypIntent);
        return true;
    }
    .
    .
    .
    .
    else if (id == R.id.web1) {
        Intent webIntent = new Intent(this, Web.class);
        startActivity(webIntent);
        return true;
    }
    else if (id == R.id.about1) {
        Intent aboutIntent = new Intent(this, About.class);
        startActivity(aboutIntent);
        return true;
    }   
}

if (map.get("usage").equals("User"))
{
    if (id == R.id.web1) {
        Intent webIntent = new Intent(this, Web.class);
        startActivity(webIntent);
        return true;
    }
    else if (id == R.id.about1) {
        Intent aboutIntent = new Intent(this, About.class);
        startActivity(aboutIntent);
        return true;
    }
}   
    return super.onOptionsItemSelected(item);
}

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

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

谁能推荐我这样的..

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

在 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;
}
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;
    }

现在您可以 hide/show menu1 随心所欲。对其他选项做同样的事情