我发现的唯一记录方式是:
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()));
由于
答案 0 :(得分:5)
你似乎把所有片段都保存在一个过时的Vector
中。在这种情况下,您将从同一Vector
中检索您的片段。例如,在getCurrentItem()
上调用ViewPager
以查找当前选定的片段索引,然后使用该索引在get()
上调用Vector
。
但是请注意,如果您依靠FragmentPagerAdapter
或FragmentStatePagerAdapter
来保存您的片段,那么给定索引的片段可能不存在,因为它尚未创建或者它被丢弃以减少内存消耗。
(顺便说一句,有关Vector
的更多信息,请参阅Why is Java Vector class considered obsolete or deprecated?)