1

このガイドでは、タブごとに異なるメニューを表示することが可能であると読みました。

MainActivity で初期化された 3 つのタブがあります。含まれている各でonPrepareOptionsMenu()orを呼び出しても、実行されることはありません。MainActivity の初期化時にメニューを表示することに成功しました...onCreateOptionsMenu()Activity

主な活動:

public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.layout.menu_tab_1, menu);
    return true;
}

このメニューが表示されます。私のTabActivitiesの1つ:

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    menu.clear();
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.layout.menu_tab_2, menu);
    return true;
}

タブを変更しても、このメニューは更新されません。しかし、複数の組み合わせ(onCreate / onPrepare、Override ...)を試しましたが、成功しませんでした。

どのようにそれを適切に行うのですか?ありがとう

4

1 に答える 1

0

これを行うには 2 つのオプションがあります。

まず、onKeyDown メソッドをオーバーライドして、ユーザーがメニューを押したことを検出し、メイン アクティビティに処理させる代わりに、アクティブなタブ アクティビティにイベントをディスパッチできます。

それ以外の場合は、タブ ホスト内のアクティビティの代わりにフラグメントを使用できます。フラグメント メカニズムは、複数のソース (通常は 1 つのアクティビティと 1 つ以上のフラグメント) からオプション メニューを組み合わせるのに最適です。

于 2012-06-05T10:27:22.817 に答える