【问题标题】:Android FragmentPagerAdapter and cursor loadersAndroid FragmentPagerAdapter 和光标加载器
【发布时间】:2012-12-21 11:08:36
【问题描述】:

我正在尝试实现一个自定义游标加载器,它将我的数据库中的数据加载到 FragmentPageAdapter 中托管的片段中。 我有一个活动(扩展 SherlockFragmentActivity),它有一个片段,它实现了一个片段页面适配器(通过新的嵌套片段)。 fragmentpageradapter 下的每个片段都实现了一个自定义光标加载器,该加载器生成要显示的数据。我在 onActivityCreated 中启动加载程序并在 onResume 上重新启动它并在 onDestroy 上销毁它。假设我在第 1 页,寻呼机也自动启动第 2 页(更流畅的事务的默认行为)问题是如果我添加要在第 2 页中显示的项目(从操作栏)并且我在第 1 页,当我滑动到加载器页面时不会刷新数据。

有什么想法吗? 谢谢!

【问题讨论】:

    标签: android cursor loader fragmentpageradapter


    【解决方案1】:

    无需停止加载程序,因为 LoaderManager 和 FragmentManager 共同为您处理。话虽这么说,我不确定这是你问题的原因。在过去的一个月里,我发现了装载程序的许多错误。虽然,其中大部分与加载程序没有更新有关。

    我知道加载程序存在一个错误,但我没有时间去追踪它。这是建议的解决方法。试试这个。

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
    
        // Start or restart the loader.  Note: this is a work-around to an Android
        // bug with loaders where they are not always properly activated with life-cycle
        // changes in the activity/fragment.
        Loader<Object> loader = getLoaderManager().getLoader((int) mId);
        if (loader != null && ! loader.isReset()) {
            mStatusLoader = (StatusItemLoader) getLoaderManager().restartLoader(
                                                        (int) mId, null, mLoadListener);
        } else {
            mStatusLoader = (StatusItemLoader) getLoaderManager().initLoader(
                                                        (int) mId, null, mLoadListener);
        }
    }
    

    【讨论】:

    • 试过了,但还是不行,我认为问题出在 fragmentpageradapter 中的片段的生命周期...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多