1

私はFragment中にありActivityます。このアクティビティにはが含まれますOptionsMenu

を使用しFragmentTransactionて同じFragmentクラスの新しいインスタンスを起動します。を選択するOptionsMenuと、2回読み込まれるため、2回表示されます。

フラグメント間でOptionsMenuを管理するにはどうすればよいですか

ありがとう。

PS:英語でごめんなさい

4

3 に答える 3

0

そのような方法はありません。BackPressedで処理し、独自のカスタムメニューを新しいfragmnetとして表示できます。または、フラグメントクラスとコンテンツに応じて、FragmentTransactionの非アクティブ内でオプションメニューを管理します

于 2011-08-24T15:59:18.763 に答える
0

私は解決策を見つけます、

OptionsMenuはアクティビティでのみ作成します。アクティビティでもOptionsItemsSelectedを取得します。

onOptionsItemSelected()が発生すると、次のような現在のフラグメントを取得します。

FragmentManager fg = getSupportFragmentManager();
Fragment frag = fg.findFragmentById(R.id.fragmentMap);

すべてのフラグメントのIDは同じですが、常にフラグメントが一番上に表示されます。次に、私は呼び出すことができます:

frag.onOptionsItemSelected(item);

フラグメント受信に送信すると、UIが正しく更新されます。

お役に立てば幸いです。

于 2011-08-25T08:18:00.400 に答える
0

拡張クラスで遊んでみてくださいsetHasOptionsMenu(boolean)。trueFragmentに設定されている場合はFragmentManager、現在のフラグメントを自動的に呼び出す必要があります。falseonOptionsItemSelectedに設定されている場合は、アクティビティでこれらのコールバックを手動で呼び出すことができますonOptionsItemSelected

私のために働いた...:)

于 2012-03-21T21:02:17.050 に答える