Правка - Не делай этого. Если у вас есть искушение, прочтите комментарии, почему это плохая идея.
По случайному совпадению вы все еще пытаетесь решить эту проблему:
Продлить FragmentPagerAdapter
. В конструкторе создайте необходимые фрагменты и сохраните их в списке (массив / ArrayList) фрагментов.
private final int numItems = 3;
Fragment[] frags;
public SwipeAdapter (FragmentManager fm) {
super(fm);
//Instantiate the Fragments
frags = new Fragment[numItems];
Bundle args = new Bundle();
args.putString("arg1", "foo");
frags[0] = new MyFragment();
frags[1] = new YourFragment();
frags[2] = new OurFragment();
frags[2].setArguments(args);
}
Тогда для getItem(int position)
вы можете сделать что-то вроде
public Fragment getItem(int position) {
return frags[position];
}
Я не уверен, является ли это общепринятым способом сделать это, но у меня это сработало.
Редактировать
Это действительно не очень хороший путь. Если вы планируете обрабатывать изменения ориентации или ваше приложение переходит в фоновый режим, то это, вероятно, нарушит ваш код. Пожалуйста, прочитайте комментарии ниже этого ответа для получения дополнительной информации. Скорее используйте ответ @James