如何在ViewPager中获得对片段的引用?

时间:2012-04-13 15:35:36

标签: android android-fragments

我发现的唯一记录方式是:

MyFragment fragment = (MyFragment) getSupportFragmentManager().findFragmentById(R.id.fragment);

但是由于Fragment是在ViewPager中实例化的,所以我没有id。

    List<Fragment> fragments = new Vector<Fragment>();
    fragments.add(Fragment.instantiate(this, Fragment1.class.getName()));
    fragments.add(Fragment.instantiate(this, Fragment2.class.getName()));
    fragments.add(Fragment.instantiate(this, Fragment3.class.getName()));

由于

1 个答案:

答案 0 :(得分:5)

你似乎把所有片段都保存在一个过时的Vector中。在这种情况下,您将从同一Vector中检索您的片段。例如,在getCurrentItem()上调用ViewPager以查找当前选定的片段索引,然后使用该索引在get()上调用Vector

但是请注意,如果您依靠FragmentPagerAdapterFragmentStatePagerAdapter来保存您的片段,那么给定索引的片段可能不存在,因为它尚未创建或者它被丢弃以减少内存消耗。

(顺便说一句,有关Vector的更多信息,请参阅Why is Java Vector class considered obsolete or deprecated?