首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >onPrepareOptionsMenu中的getSherlockActivity返回null

onPrepareOptionsMenu中的getSherlockActivity返回null
EN

Stack Overflow用户
提问于 2012-11-11 21:01:43
回答 1查看 550关注 0票数 0

我正在使用ActionBar神探夏洛克4.2。当用户旋转设备时,我在onPrepareOptionsMenu方法中得到一个空引用。当从横向模式中的双片段布局切换回纵向模式时会发生这种情况,该模式只显示没有详细片段的“主”片段。但我的细节片段仍然会被调用。首先,我认为我在我的menu.xml中做错了什么,但事实并非如此。返回的活动为null。有没有人知道哪里出了什么问题?

奇怪的是,代码还通过了isDetached()检查。

任何建议都很感谢,Kitesurfer

代码语言:javascript
运行
复制
/*
 * (non-Javadoc)
 * 
 * @see android.support.v4.app.Fragment#onPrepareOptionsMenu(android.support. v4.view.Menu)
 */
@Override
public void onPrepareOptionsMenu(final Menu menu)
{
    if (getListAdapter() == null || getListAdapter().isEmpty() && isDetached())
    {
        return;
    }


    final MenuItem item = menu.findItem(R.id.forecast_options_navigate_to_spot);
    Log.d(LOG_TAG, "Menu item size:" + menu.size());
    Log.d(LOG_TAG, "Activity:" + getSherlockActivity());

输出:

代码语言:javascript
运行
复制
11-11 13:07:46.862: D/MyFragment(27997): Menu item size:8
11-11 13:07:46.862: D/MyFragment(27997): Activity:null
EN

回答 1

Stack Overflow用户

发布于 2012-11-14 01:21:30

所以,我找到了问题所在。在我的PagerAdapter中,我做了一些愚蠢的事情。

在我的

代码语言:javascript
运行
复制
public void onTabUnselected(final Tab tab, final FragmentTransaction nullTransaction)

我调用了getItem()来创建另一个片段,这个片段当然会在这个方法中被分离。这会导致onPrepareOptionsMenu中的活动为空。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13331340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档