1) メニューへの参照をアクティビティに保存します。アクティビティでプライベート プロパティを作成します。
private Menu mMenu;
2) のメニューへの参照を取得しますonCreateOptionsMenu
。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.test_choice, menu);
mMenu = menu;
return super.onCreateOptionsMenu(menu);
}
3) その後、必要に応じてアクション バーの項目を切り替えることができます。たとえば、アクション バー項目のアイコンとタイトルを変更するメソッドを作成しました。
private void displayActionBar() {
if (mMenu == null) return;
if (mQuestionStage) {
MenuItem nextItem = mMenu.findItem(R.id.action_testNext);
nextItem.setIcon(R.drawable.navigation_accept);
nextItem.setTitle(getResources().getString(R.string.action_testCheck));
} else
{
MenuItem nextItem = mMenu.findItem(R.id.action_testNext);
nextItem.setIcon(R.drawable.navigation_forward);
nextItem.setTitle(getResources().getString(R.string.action_testNext));
}
}
編集
追加のコメントに基づいて、アクション バーのドロップダウンを切り替える方法を次に示します (表示と非表示の間で)。必要な場所でそのコードを使用できます。
ActionBar actionBar = getSupportActionBar();
if (actionBar.getNavigationMode() == ActionBar.NAVIGATION_MODE_LIST)
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
else
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);