2

私のListViewアクティビティでは、LoaderManagerを使用してカーソルを管理し、カスタムCursorAdapterも持っています

mAdapter = new CustomCursorAdapter(getActivity(), null,CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
setListAdapter(mAdapter);

アダプタの登録中に、LoaderManager によって管理される null カーソルが渡されます

getLoaderManager().initLoader(3, null, this);

この CustomCursorAdapter に SectionIndexer を実装する必要があります。私の問題は、CustomCursorAdapter コンストラクターでは、カーソルが最初は null になることです。Cursor の準備ができていることをどのように知ることができますか。

があります

getCursor();

メソッドは CursorAdapter でカーソルを取得するために使用できますが、そのコールバック メソッドでは、LoaderManager が Cursor へのデータのロードを完了し、操作する準備ができていることが確実にわかっています。

ありがとう

4

2 に答える 2

2

操作の準備が整ったデータLoaderManagerのロードが完了したことを確実に確認できるコールバック メソッドはどれですか?Cursor

LoaderManager何も「ロード」しません...むしろ、データ ソースをクエリするように指示します (この場合は a だと思います)。ロードが完了し、が作成されると、はに通知します。最後に、ロードされたデータを使用してコールバックのメソッド ( で実装されている可能性が高い) を呼び出します。LoaderContentProviderCursorLoaderLoaderManagerCursorLoaderManageronLoadFinished()Activity

また、 ...レジスタを単独で使用CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVERする必要はないため、 に登録するのは無駄で無駄です。LoaderManagerLoaderContentObserverCursorAdapter

于 2012-08-03T22:30:36.723 に答える