Android FragmentActivity如何将变量传递给Fragments?

时间:2012-02-18 09:25:54

标签: android sliding android-fragmentactivity fragmentpageradapter

我有一个完美的运行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对象。目前,每个对象都获得了相同的值。

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

我通常这样做: 如果数据从开始可用而不是更改,那么我将它们解析为fragment.instantiate的参数。然后在这个函数中你可以把它们作为一个带有.putArguments(...)的Bundle放到你的片段中。在你的片段的onCreate中,你可以使用.getArguments(...)

检索数据