1

Android Fragments チュートリアルに似たものを構築しようとしています:左側に ListView フラグメントがあり、右側にアイテムを表示できるフラグメントがあります。

今、リストの最初の項目を、SimpleCursorAdapter (LoaderManager を介して使用) を介してロードされるとすぐに (または直後に) 自動選択しようとしています。すべて Android サポート ライブラリを使用しています。

public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    mAdapter = new SimpleCursorAdapter(/* options */);
    setListAdapter(mAdapter);
}

public Loader<Cursor> onCreateLoader(int id, Bundle args) {
    CursorLoader cl = new CursorLoader(getActivity());
    /* setProjection, etc */
    return cl;
}

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

public void onLoaderReset(Loader<Cursor> loader) {
    mAdapter.swapCursor(null);
}

さまざまなサンプル実装を確認しましたが、それらはすべて単純すぎるか、ロード時に右側にフラグメントが入力されず、クリックしただけのようです。

とにかく実装する必要がありましonLoadFinishedたが、長いリストをロードしているため、それでは遅すぎます。onItemLoadedListenerそのため、最初に呼び出されたときにのみ使用するan の線に沿って考えていました。しかし、そのようなものは存在しないようですので、私はかなり立ち往生しています。

ご指摘ありがとうございます。

4

1 に答える 1

1

単純すぎることに対して何を持っていますか?

 public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
     data.moveToFirst();
     Bundle b = new Bundle();
     // get info from that first item and put into the bundle
     ...

     ContentFrag f = new ContentFrag();
     f.setArguments(b);
     getSupportFragmentManager().beginTransaction().replace(R.id.contentLayout, f).commit();

     // instantiate and set your adapter
     ...
 }

単純!他のフラグメント トランザクションと同様です。

于 2012-11-08T17:47:16.910 に答える