android: changing option menu items programmatically
For anyone needs to change the options of the menu dynamically:
private Menu menu;// ...@Overridepublic boolean onCreateOptionsMenu(Menu menu){ this.menu = menu; getMenuInflater().inflate(R.menu.options, menu); return true;}// ...private void hideOption(int id){ MenuItem item = menu.findItem(id); item.setVisible(false);}private void showOption(int id){ MenuItem item = menu.findItem(id); item.setVisible(true);}private void setOptionTitle(int id, String title){ MenuItem item = menu.findItem(id); item.setTitle(title);}private void setOptionIcon(int id, int iconRes){ MenuItem item = menu.findItem(id); item.setIcon(iconRes);}
Like Nikolay said do that in onPrepareOptionsMenu().
For menu items in the action bar you have to invalidate the menu withactivity.invalidateOptionsMenu();
This is descriped in more detail here How can I refresh the ActionBar when onPrepareOptionsMenu switched menu entries?