在我的ListView Activity中,使用LoaderManager管理游标并且还有一个Custom CursorAdapter
mAdapter = new CustomCursorAdapter(getActivity(), null,CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
setListAdapter(mAdapter);
注册适配器时,传递一个由LoaderManager
管理的空游标getLoaderManager().initLoader(3, null, this);
现在需要为此CustomCursorAdapter实现SectionIndexer。我的问题是在CustomCursorAdapter构造函数中,游标最初将为null,我怎么知道我什么时候准备好Cursor。
有一个
getCursor();
可用于在CursorAdapter中获取光标的方法,但是我知道LoaderManager已经完成加载带有数据的Cursor的回调方法已准备好被操作
感谢
答案 0 :(得分:2)
在哪种回调方法中,我确定
LoaderManager
已完成加载Cursor
的数据已准备好进行操作?
LoaderManager
没有“加载”任何内容...而是指示 Loader
查询数据源(ContentProvider
情况,我假设)。然后CursorLoader
会在LoaderManager
加载完成并且已创建Cursor
时通知LoaderManager
。最后,onLoadFinished()
使用加载的数据调用回调的Activity
方法(您最有可能在CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER
中实现)。
此外,您无需LoaderManager
使用Loader
ContentObserver
自己注册CursorAdapter
,因此请为{{1}}注册一个{{1}} {1}}无用而浪费。
答案 1 :(得分:-1)
有一个 onContentChanged()方法,当光标发生一些变化时会触发该方法。如果您正在使用内容提供程序和URI,则此方法有效。希望这有帮助。