android - SherlockFragment onCreateOptionsMenu 没有调用

标签 android android-fragments actionbarsherlock oncreateoptionsmenu pagerslidingtabstrip

在我的应用程序中,我有一个扩展 SherlockFragmentActivity 的类。在该 Activity 中,我正在加载四个扩展 SherlockFragment 的类,它在 ActionbarSherlock 的帮助下伪装成 TabsPagerSlidingTabStrip

扩展 SherlockFragment 的类在 onCreate() 中有 setHasOptionsMenu(true);/strong> 方法。即使有,当运行应用程序时,它也不会调用 onCreateOptionsMenu() 方法。

我在 SO 中阅读了这些类似的问题( Q1Q2 ),但没有得到任何帮助。

这可能是什么原因?


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

    setHasOptionsMenu(true);

}

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    menu.clear();
    inflater.inflate(R.menu.record, menu);
    super.onCreateOptionsMenu(menu, inflater);
    Log.i(TAG, "* onCreateOptionsMenu");
}

更新:

我认为原因是,我在另一个 SherlockFragment 中使用 SherlockFragment。表示 PageSlidingTabStripFragment.javaMyPagerAdapter 类中有以下方法。

@Override
public SherlockFragment getItem(int position) {
    return SuperAwesomeCardFragment.newInstance(position);
}

我正在做的是,我从那里调用其他一些 SherlockFragments,如下所示。

@Override
public SherlockFragment getItem(int position) {
    Log.i(TAG, "* getItem");

    switch (position) {
        case 0:
            return new InnerSherlockFragmentOne();
        case 1:
            return new InnerSherlockFragmentTwo();
        case 2:
            return new InnerSherlockFragmentThree();
        case 3:
            return new InnerSherlockFragmentFour();
        default:
            return null;
    }
}

没有调用的是那些 InnerSherLockFragments 中的 onCreateOptionsMenu(Menu menu, MenuInflater inflater)

最佳答案

导入应该是:

import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;

而不是 android 操作系统的这些!

也可以尝试调用 super 方法,例如:

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

    Log.i(TAG, "* onCreateOptionsMenu");
}

关于android - SherlockFragment onCreateOptionsMenu 没有调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20067762/

相关文章:

Android隐藏 ListView 滚动条?

android - 在表 sqlite 中找不到命名的列

java - recyclerview 中的列表未排序

android - 从 fragment 中的 onItemClick 访问 BottomNavigationView 项目

android - fragment : Unknown animation name objectanimator

android - 几个 android-support-v4,我该如何删除它们?

安装了 Android Fetch 和设备中的默认浏览器

java - 正确的时间格式

android - 使用 Android 4.X 编译但支持 API Level 9

java - 应用程序中的选项卡栏图标与选项卡文本重叠