默认情况下,我使用以下代码将可见性设置为false。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_items, menu);
menu.findItem(R.id.action_share).setVisible(false);
return true;
}
现在,当用户点击我的活动中的按钮时,如何让它再次显示。
答案 0 :(得分:7)
在你的onCreateOptionsMenu:
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_items, menu);
if (hideIcon){
menu.findItem(R.id.action_share).setVisible(false);
}else{
menu.findItem(R.id.action_share).setVisible(true);
}
return true;
}
在要显示/隐藏图标的方法中,只需将布尔值hideIcon设置为true或false,然后调用:
invalidateOptionsMenu();
刷新菜单。
答案 1 :(得分:1)
获取该菜单项的实例,并且每次都可以设置其项目可见性。
Menu mMenu;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_items, menu);
mMenu = menu;
mMenu.findItem(R.id.action_share).setVisible(false);
return true;
}
//somewhere else
mMenu.findItem(R.id.action_share).setVisible(true);
并基于@chol接听电话invalidateOptionsMenu();
答案 2 :(得分:0)
虽然您可以创建一个类字段
private Menu menu;
并在onCreateOptionsMenu()
中捕获其值 this.menu = menu;
然后在clickListener中编写代码
this.menu.findItem(R.id.action_share).setVisible(true);