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

zna*_*nat 6 android android-fragments

我找到的唯一记录方式是:

MyFragment fragment = (MyFragment) getSupportFragmentManager().findFragmentById(R.id.fragment);
Run Code Online (Sandbox Code Playgroud)

但是由于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()));
Run Code Online (Sandbox Code Playgroud)

谢谢

Com*_*are 5

你似乎把所有片段都保存在内存中,并且已经过时了Vector.在这种情况下,您将从中检索您的片段Vector.例如,调用getCurrentItem()ViewPager找到当前所选片断索引,然后调用get()Vector与该索引.

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

(顺便说一句,请参阅为什么Java Vector类被认为已过时或已弃用?有关详情Vector)