Editar - No haga esto. Si está tentado, lea los comentarios de por qué es una mala idea.
Por impar oportunidad que todavía estamos tratando de resolver este problema:
Extender FragmentPagerAdapter
. En el constructor, construya los Fragmentos que necesita y almacénelos en una Lista (array/ArrayList) de Fragmentos.
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);
}
Luego de getItem(int position)
, se puede hacer algo como
public Fragment getItem(int position) {
return frags[position];
}
No estoy seguro si esta es la forma generalmente aceptada de hacerlo pero funcionó para mí.
Editar
Esto no es realmente una buena manera de ir. Si planeas manejar los cambios de orientación o si tu aplicación está en segundo plano, es probable que esto rompa tu código. Por favor, lea los comentarios debajo de esta respuesta para más información. Más bien use la respuesta de @James
El método en la respuesta vinculada no funciona con FragmentStatePagerAdapter, pero la [segunda respuesta] (http://stackoverflow.com/a/8886019/237820) a la misma pregunta vinculada tiene un método que sí lo hace. –
Si bien esto podría responder teóricamente a la pregunta, [sería preferible] (http://meta.stackoverflow.com/q/8259) incluir aquí las partes esenciales de la respuesta y proporcionar el enlace de referencia. – Keelan