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