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(...) 的 Bundle 放到您的片段中。在片段的 onCreate 中,您可以使用 .getArguments(...) 检索数据

于 2012-02-18T09:58:24.513 回答