私の主な目標は、アクティビティの現在のレイアウトに応じてオプション メニューを更新することです。R.layout.preweb がアクティブなときにアクション バーにボタンを表示したくありませんが、setContentView が R.layout.main に変更されると、アクティブになり、無効なオプション メニューが表示され、膨張します。これが私が今持っているものです:
private int mViewMode;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_activity_actions, menu);
return mViewMode == 2;
}
そして、私の活動を通して、ランダムな方法で、私はこれを持っています:
setContentView(R.layout.preweb);
mViewMode = 1;
//or somewhere else
setContentView(R.layout.main);
mViewMode = 2;
invalidateOptionsMenu();
したがって、基本的には、mViewMode が 2 に設定されるたびに、invalidateOptionsMenu が呼び出されてから onCreateOptionsMenu が再トリガーされ、mViewMode が 2 に等しくなったときに、インフレートする必要があります。しかし、何も起こっていません - 膨らむことはありません。
どうしたの?助言がありますか?