ユーザーの属性によってActivityのOptionMenuの内容を変更したいことがあります。
例えば、ログインユーザーの場合のみ削除メニューを表示するようなケースです。
onPrepareOptionsMenu
でメニューを操作することで実現できます。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuItem deleteMenu = menu.findItem(R.id.action_delete);
deleteMenu.setVisible(isLoginUser());
return true;
}