0

ActionbarSherlock と Fragments を併用しています。フラグメントの 1 つで、アクションバーにオプション メニュー項目を追加します。表示され、クリックすると、別のアクティビティに移動するコールバックが取得されます。このアクティビティに戻ると、同じオプション メニュー項目の別のコピーがアクション バーに表示されます。押すことができる2つのオプションがあることを知っています。どちらも機能します。余分なメニュー項目を取り除くにはどうすればよいですか?

メニューは次のようになります。

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
    android:id="@+id/menu_scan_book"
    android:orderInCategory="100"
    android:showAsAction="ifRoom"
    android:title="@string/menu_scan_book"/>
</menu>

私のSherlockFragmentには、このコードがあります

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);
}

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    super.onCreateOptionsMenu(menu, inflater);
    inflater.inflate(R.menu.scan_book_action_menu, menu);
}

Fragmentを所有するSherlockFragmentActivityで、私が呼び出そうとしました

supportInvalidateOptionsMenu()

上に移動したアクティビティから戻ったとき。

私は何が欠けていますか?

4

1 に答える 1

0

menu.clear()電話をかけようとしましたpublic void onCreateOptionsMenu(Menu menu, MenuInflater inflater)か?これは単なる回避策ですが、私にとってはうまくいきました。

詳細については、こちらを参照してください:同じメニューのフラグメントが同じレイアウトにあると、重複するメニュー項目が発生します

于 2013-03-14T16:20:50.577 に答える