Android ListFragment游标管理

标签 android android-fragments android-support-library android-loadermanager

我想为我的 Android 应用程序使用 ListFragment 和 Loader 类。 (蜂窝级SDK,但谷歌发布对比包)

在Fragment中,是否有使用Fragmemt生命周期管理游标的API

Activity 有“startManagingCursor(Cursor c)

Fragment 在其生命周期中自动管理游标?

最佳答案

我不确定我是否答对了您的问题,但是如果您问的是在使用 Loader 时您的光标是否在 ListFragment 中自动管理,那么我相信答案是:是的,是的。

在您的 ListFragment 中,您将实现 LoaderManager.LoaderCallbacks 接口(interface),然后使用 LoaderManager 中的 initLoader() 和 restartLoader() 来在 ListFragment 的生命周期内管理您的数据和游标。底层适配器必须支持 swapCursor() 方法才能使其发挥最佳作用。

类似的东西:


class Foo extends ListFragment implements LoaderManager.LoaderCallbacks {

    private MyAdapter   mAdapter;

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        mAdapter = new MyAdapter();
        getLoaderManager().initLoader(0, null, this);
    }

    @Override
    public Loader onCreateLoader(int id, Bundle args) {
        Uri MY_URI = "your data URI goes here";
        return new CursorLoader(getActivity(), MY_URI, MY_PROJECTION, selection, selectionArgs, sortOrder);
    }

    @Override
    public void onLoadFinished(Loader loader, Cursor data) {
        mAdapter.swapCursor(data);
    }

    @Override
    public void onLoaderReset(Loader loader) {
        mAdapter.swapCursor(null);
    }
}

关于Android ListFragment游标管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5230342/

相关文章:

Xamarin 支持库从 24.2.1 更新到 25.0.1-rc1 后,Android 在应用程序启动时崩溃

android - 从 Eclipse 移植和升级 Android 库

java - 为什么我的横幅出现在我的主视图下?

android - 使用 PagerSnapHelper 的垂直和水平 RecyclerView

android - 如何在android中分享帖子的内容?

android - 如何在 Titanium 中使用 Android Material Theme Design 属性(彩色状态栏,...)

java - android 支持 v14 PreferenceFragment 崩溃

android - 如果我以编程方式更改 fragment ,如何更改底部导航图标颜色

Android - 重新膨胀 fragment 会导致 "Error inflating class fragment"

java - 如何在监听器中正确使用 bundle (匿名内部类)