1

AndroidアプリにListFragmentとLoaderClassを使用したいと思います。(ハニカムレベルのSDK、ただしGoogleリリースの比較可能性パッケージ)

Fragmentでは、FragmemtライフサイクルでカーソルAPIを管理していますか?

アクティビティには「startManagingCursor(Cursorc)」があります

また

フラグメントは、そのライフサイクルでカーソルを自動的に管理しますか?

4

1 に答える 1

2

質問が正しいかどうかはわかりませんが、ローダーを使用しているときにカーソルがListFragmentで自動的に管理されるかどうかを尋ねる場合、答えは「はい」です。

ListFragmentで、LoaderManager.LoaderCallbacksインターフェースを実装してから、LoaderManagerからinitLoader()とrestartLoader()を使用して、ListFragmentのライフサイクル中にデータとカーソルを管理します。これを最適に機能させるには、基盤となるadatpterがswapCursor()メソッドをサポートしている必要があります。

次のようなもの:


class Foo extends ListFragment implements LoaderManager.LoaderCallbacks {

    private MyAdapter   mAdapter;

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        mAdapter = new MyAdapter();
        getLoaderManager().initLoader(0, null, this);
    }

    @Override
    public Loader onCreateLoader(int id, Bundle args) {
        Uri MY_URI = "your data URI goes here";
        return new CursorLoader(getActivity(), MY_URI, MY_PROJECTION, selection, selectionArgs, sortOrder);
    }

    @Override
    public void onLoadFinished(Loader loader, Cursor data) {
        mAdapter.swapCursor(data);
    }

    @Override
    public void onLoaderReset(Loader loader) {
        mAdapter.swapCursor(null);
    }
}
于 2011-07-20T15:20:50.680 に答える