0

私の主な目標は、アクティビティの現在のレイアウトに応じてオプション メニューを更新することです。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 に等しくなったときに、インフレートする必要があります。しかし、何も起こっていません - 膨らむことはありません。

どうしたの?助言がありますか?

4

1 に答える 1