By default I set the visibility to false by using following code.
@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;
}
Now how can I make it visible again when user clicks a button in my activity.
In your 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;
}
In method where you want to show/hide the icon, just set the boolean hideIcon to true or false and call :
invalidateOptionsMenu();
to refresh the menu.
get the instance of that menu item, and you can set its item Visibility every time.
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);
and based on @chol answer call invalidateOptionsMenu();
While you can create a class field
private Menu menu;
and capture its value in onCreateOptionsMenu()
this.menu = menu;
Then Write the code in clickListener
this.menu.findItem(R.id.action_share).setVisible(true);
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.