6

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

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()));

谢谢

4

1 回答 1

5

您似乎将所有片段都保存在 oh-so-obsoleteVector中。在这种情况下,您将从相同的Vector. 例如,调用getCurrentItem()ViewPager查找当前选择的片段索引,然后调用具有get()Vector索引的 。

但是请注意,如果您依赖FragmentPagerAdapterFragmentStatePagerAdapter保存您的片段,则给定索引的片段可能不存在,因为它尚未创建或已被丢弃以最小化内存消耗。

(顺便说一句,有关更多信息,请参阅为什么 Java Vector 类被认为已过时或已弃用?Vector

于 2012-04-13T15:53:32.863 回答