0

我想使用FragmentStatePagerAdapter或FragmentPagerAdapter來刷卡3個不同的片段。每個片段都來自不同的類別。我不太確定我應該在哪裏創建新對象。它應該在getItem函數中完成嗎? 我看到的大多數示例都使用相同類型的片段。如何在每個片段來自不同的類時使用FragmentStatePagerAdapter或FragmentPagerAdapter?

private class SimplePagerAdapter extends FragmentPagerAdapter { 

    public SimplePagerAdapter(FragmentManager fm) { 
     super(fm); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     switch(position) { 
      case 0: return (Fragment) new myFragmentType1(); // ? 
      case 1: return (Fragment) new myFragmentType2(); // ? 
      default: return (Fragment) new myFragmentType3(); // ? 
     } 
    } 

    @Override 
    public int getCount() { 
     return 3; 
    } 
} 

預先感謝您!

回答

0

不要在getItem()中做。只要適配器需要填充尋呼機,該方法就會被調用,並且最終會創建新的碎片。在Adapter構造函數中執行。我通常將它們保存在ArrayList中,然後使用getItem()中的position屬性引用它們。如果您還需要使用getItemPosition()方法,這也會有所幫助,因爲您可以使用匹配的片段查找ArrayList中的位置。

相關問題