在我的 ListView Activity 中,使用 LoaderManager 来管理光标,还有一个自定义 CursorAdapter
mAdapter = new CustomCursorAdapter(getActivity(), null,CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
setListAdapter(mAdapter);
在注册适配器时,会传递一个由 LoaderManager 管理的空游标
getLoaderManager().initLoader(3, null, this);
现在需要为这个 CustomCursorAdapter 实现 SectionIndexer。我的问题是,在 CustomCursorAdapter 构造函数中,游标最初将为 null,我如何知道何时准备好游标。
有一个
getCursor();
可用于在 CursorAdapter 中获取光标的方法,但我确定在哪个回调方法中 LoaderManager 已完成加载带有数据的 Cursor 已准备好进行操作
谢谢
最佳答案
In which callback method do I know for sure that
LoaderManager
has finished loading theCursor
with data that is ready to be manipulated?
LoaderManager
不会“加载”任何东西……相反,它指示 Loader
查询数据源(我假设在本例中为 ContentProvider
)。 CursorLoader
然后通知 LoaderManager
当它的加载完成并且 Cursor
已经被创造了。最后,LoaderManager
调用回调的 onLoadFinished()
方法(您很可能已在 Activity
中实现)与加载的数据。
此外,您不需要使用 CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER
与 LoaderManager
... Loader
注册 ContentObserver
自己,所以为 CursorAdapter
注册一个既无用又浪费。
关于android - CursorAdapter 和 FLAG_REGISTER_CONTENT_OBSERVER,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7883969/