我希望在我的应用程序中使用CursorLoader,但我不想将返回的游标与SimpleCursorAdapter一起使用。我只想获得从onLoadFinished()
返回的游标的引用这是一些代码
public class MainActivity extends Activity implements LoaderManager.LoaderCallbacks<Cursor>
{
@Override
public void onCreate(Bundle arg)
{
getLoaderManager().initLoader(0, null, this);
}
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args)
{
return new CursorLoader(getActivity(), baseUri,PROJECTION, select, null, COLNAME );
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data)
{
// rather than swap the cursor with SimpleCursorAdapter reference, I wish to return the cursor so I can reference it
}
}
任何想法如何做到这一点
答案 0 :(得分:2)
您可以创建类成员:
private Cursor mCursor;
...
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
mCursor = data;
}
@Override
public void onLoaderReset(Loader<Cursor> loader) {
mCursor = null;
}
来自de docs的:onLoaderReset - 在重置先前创建的加载器时调用,从而使其数据不可用。此时,应用程序应删除它对Loader数据的任何引用。
而HERE你可以看到迭代光标的方法。