特定のメニューを動的に無効化する
Androidアプリを作ってて、res/menu/hoge.xml なんかでメニューを定義したとする。定義したメニューのうちの特定のメニュー項目だけを、特定の条件で無効化したい時がある。
onCreateOptionsMenu()メソッドの中で制御すればいい。
@Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.hoge, menu); for (int i = 0; i < menu.size(); i++) { MenuItem item = menu.getItem(i); if (item.getItemId() == R.id.hoge) { boolean b = isHogeMenuEnableCondition(); item.setEnabled(b); } } return true; }