为什么我在ActionBar中获得相同选项菜单项的副本?

时间:2013-01-02 00:14:23

标签: android android-fragments actionbarsherlock

我将ActionbarSherlock与Fragments一起使用。在其中一个片段中,我在操作栏中添加了一个选项菜单项。它出现了,当我点击它时,我得到一个回调,我转移到另一个活动。当我返回此Activity时,我在Actionbar中获得了相同选项菜单项的另一个副本。我知道我可以按两个选项。两者都有效。 如何摆脱额外的菜单项?

菜单如下所示:

<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()

当我从活动中返回时,我移到了上面。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

您是否尝试在menu.clear()中致电public void onCreateOptionsMenu(Menu menu, MenuInflater inflater)?它只是一种解决方法,但它对我有用。

转到此处获取更多信息:Fragments, with the same menu, on the same layout cause duplicated menuitem