2

(同一の)フラグメント間で滑らかな水平スライドを備えた、完全に正常に実行されている FragmentActivity があります。Fragment オブジェクトに変数を送信するにはどうすればよいのでしょうか。

私のコードは次のようになります。

    private void initialisePaging() {

    fragments = new Vector<Fragment>();

    for (int i = 0; i < wiList.length; i++) {
        WhiteboardImage tmpWi = wiList[i];

        intent.putExtra("displayNow", tmpWi.getFilename());
        fragments.add(Fragment.instantiate(this, GalleryFragment.class.getName()));
    }

    this.mPagerAdapter = new GalleryPagerAdapter(super.getSupportFragmentManager(), fragments);

    ViewPager pager = (ViewPager) super.findViewById(R.id.viewpager);
    pager.setAdapter(this.mPagerAdapter);

    // Define which item of the list will be displayed
    pager.setCurrentItem(4);
}

したがって、基本的に for() ループでは、GalleryFragment オブジェクトを PagerAdapter に複数回追加しています。ここでやりたいことは、各 GalleryFragment が異なる ID (または文字列) を取得することです。そのループ内の各 GalleryFragment オブジェクトに異なる値を渡す方法がわかりませんでした。現時点では、各オブジェクトはまったく同じ値を取得します。

助けてくれてありがとう。

4

1 に答える 1

3

私は通常、次のように作成しました。データが最初から利用可能であり、変更されていない場合、それらをfragment.instantiateのパラメーターとして解析しました。次に、この関数で、それらを .putArguments(...) を使用してバンドルとしてフラグメントに配置できます。フラグメントの onCreate では、.getArguments(...) を使用してデータを取得できます。

于 2012-02-18T09:58:24.513 に答える