【发布时间】:2013-03-15 00:20:50
【问题描述】:
我将 ActionbarSherlock 与 Fragments 一起使用。在其中一个片段中,我在操作栏中添加了一个选项菜单项。它显示出来,当我单击它时,我会收到一个回调,在该回调中我移动到另一个 Activity。当我返回此活动时,我会在操作栏中获得相同选项菜单项的另一个副本。我知道有两个选项可以按。两者都有效。 如何去掉多余的菜单项?
菜单如下所示:
<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()
当我从移动到上面的活动返回时。
我错过了什么?
【问题讨论】:
-
如果我不得不猜测,您有两个操作栏项目,因为不知何故,您有两个片段副本。
-
也许,但我必须检查更多。我保持应用程序打开并执行操作的时间越长,我就会获得选项项目的多个副本。我将使用片段的多个副本进行检查。
-
重启 Eclipse 后问题消失。这可能是一个构建问题。很抱歉占用您的时间。
-
重启 Eclipse 确实可以解决很多问题,但说实话,我从没想过它会在这种情况下有所帮助。不过,很高兴听到它对您有用!
-
你是对的。它没有帮助。每次我点击它时都会添加一个选项。我调用另一个意图(使用条形码扫描仪扫描),然后返回此活动。周末我很忙,但当我回来时需要调试更多。
标签: android android-fragments actionbarsherlock