我正在使用FragmentStatePagerAdapter,参考这个示例。
MyAdapter类实现如下:
public static class MyAdapter extends FragmentStatePagerAdapter {
public MyAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return NUM_ITEMS;
}
@Override
public Fragment getItem(int position) {
return ArrayListFragment.newInstance(position);
}
}
ListFragment类包含以下方法以创建新实例:
/**
* Create a new instance of CountingFragment, providing "num"
* as an argument.
*/
static ArrayListFragment newInstance(int num) {
ArrayListFragment f = new ArrayListFragment();
// Supply num input as an argument.
Bundle args = new Bundle();
args.putInt("num", num);
f.setArguments(args);
return f;
}
当我在活动中创建一个新的FragmentStatePagerAdapter时,会调用getItem方法,该方法又调用ListFragment类中的newInstance方法。当我想创建一个新的片段时,这非常好。
但是,如果需要,在用户从第2页翻到第1页时,如何修改getItem(甚至需要修改)以获取已经存在的片段对象并且我希望我的Activity检索先前创建的现有片段,以便它可以运行位于片段类中的内部类AsyncMethod,这对我来说不是很清楚。
getItem()
名称有些奇怪,它并没有提供您想要的功能。请查看我在同一主题上的问题:https://dev59.com/B2kv5IYBdhLWcg3wdQvm - Michał Klimczak