当每个片段来自不同的类时,如何使用FragmentStatePagerAdapter或FragmentPagerAdapter?

时间:2014-03-05 01:30:32

标签: android fragmentpageradapter fragmentstatepageradapter

我想使用FragmentStatePagerAdapter或FragmentPagerAdapter来浏览3个不同的片段。每个单独的片段来自不同的类。我不太确定我应该在哪里创建新对象。应该在getItem函数中完成吗? 我看到的大多数例子都使用相同类型的片段。

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;
    }
}

提前谢谢!

1 个答案:

答案 0 :(得分:0)

不要在getItem()中执行此操作。只要适配器需要填充寻呼机,您就会调用该方法,最终您将创建新的碎片。在Adapter构造函数中执行此操作。我通常将它们保存在ArrayList中,然后使用getItem()中的position属性引用它们。如果您还需要使用getItemPosition()方法,这也会有所帮助,因为您可以使用匹配的片段在ArrayList中查找位置。