2

我有一个非常好的运行FragmentActivity与(相同)碎片之间的平滑水平滑动。我现在想知道如何将变量发送给Fragment对象?Android FragmentActivity如何将变量传递给碎片?

我的代码如下所示:

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对象。目前,每个对象都具有相同的值。

感谢您的任何帮助。

回答

3

我通常这样做: 如果数据从一开始就可用,而没有改变,那么我将它们解析为fragment.instantiate的参数。那么在这个函数中,你可以把它们作为一个Bundle与.putArguments(...)到你的片段。并在你的片段的onCreate你可以检索数据与.getArguments(...)

+0

谢谢。我只是在同一时间计算出来的,但现在有一个不同的问题。我正在使用此代码: – 2012-02-18 10:39:28

+0

抱歉,我之前的评论在我仍在编辑时被阻止。我的意思是说: 太棒了!它的功能非常好! : - ] – 2012-02-18 10:46:23

+0

任何想法如何访问变量,如果他们从一开始* *不可用? – 2012-08-17 23:06:03