如何隐藏操作栏中的一些菜单?
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
随心所欲。对其他选项做同样的事情
在我的应用程序中,我有将近 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
随心所欲。对其他选项做同样的事情