我想为我的 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/