Edit - Ne faites pas ça. Si vous êtes tenté de le faire, lisez les commentaires pour savoir pourquoi c'est une mauvaise idée.
Au cas où vous essayeriez encore de résoudre ce problème :
Étendre le site FragmentPagerAdapter
. Dans le constructeur, construisez les fragments dont vous avez besoin et stockez-les dans une liste (array/ArrayList) de fragments.
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);
}
Ensuite, pour getItem(int position)
vous pouvez faire quelque chose comme
public Fragment getItem(int position) {
return frags[position];
}
Je ne sais pas si c'est la façon de faire généralement admise, mais cela a fonctionné pour moi.
Modifier
Ce n'est vraiment pas une bonne façon de faire. Si vous prévoyez de gérer les changements d'orientation ou de mettre votre application en arrière-plan, cela va probablement casser votre code. Veuillez lire les commentaires sous cette réponse pour plus d'informations. Utilisez plutôt la réponse de @James