データベースからデータをクエリするために、アプリケーションにローダーを実装しました。リスナーを実装することで、発生する変更をリッスンしますLoaderCallbacks<Cursor>
。私が抱えている問題はonLoaderReset(Loader<Cursor> loader)
、データが変更され、ローダーに関連付けられているデータを無効にして解放したいときにメソッドを使用するときです。すべての例で、このメソッドには次の呼び出しがあります。
mAdapter.swapCursor(null);
しかし、問題は、カーソルからのデータをアダプターで使用するのではなく、アプリケーションで別の方法で使用することです。
onLoadFinished(Loader<Cursor> loader, Cursor data)
(たとえば、返されたカーソルから直接)
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
if (data.moveToFirst()) {
TOTAL_CARDS = data.getCount();
mView.createCards(TOTAL_CARDS);
} else {
TOTAL_CARDS = 0;
mView.createCards(TOTAL_CARDS);
}
}
ここで対応することは何でしょうか。それは と似ていmAdapter.swapCursor
ます。私はローダーの経験があまりありません。実際、ローダーを使い始めたばかりなので、誰かがこれに対する解決策を持っていれば、それを感謝します。どうも!
編集:今のところ、ローダーにnullを渡していますが、次のように機能します:
@Override
public void onLoaderReset(Loader<Cursor> loader) {
loader = null;
}
};
しかし、これは正しい解決策ですか?