Sto lavorando con un FragmentStatePagerAdapter utilizzando this example.Android FragmentStatePagerAdapter
La classe MyAdapter è implementata come segue:
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);
}
}
classe La ListFragment comprende il seguente metodo per creare una nuova istanza:
/**
* 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;
}
Quando creo un nuovo adattatore pager stato frammento nel mio viene chiamato il numero getItem
, che a sua volta chiama il metodo newInstance
nella classe ListFragment. Questo è fantastico quando voglio creare un nuovo frammento.
Ma non è chiaro per me come modificare getItem
(se ancora necessario) per ottenere l'oggetto frammento quando esiste già e le pagine degli utenti da, per esempio, pagina 2 a pagina 1. Vorrei che il mio Attività per recuperare quel frammento esistente creato in precedenza in modo che possa eseguire una classe interna AsyncMethod
, che risiede nella classe frammento.
'getItem()' ha un nome strano, non fornisce la funzionalità che stai pensando di. Per favore controlla la mia stessa domanda sullo stesso argomento: http://stackoverflow.com/questions/10574114/referencing-fragments-inside-viewpager –
Questo sembra molto utile. Ma sto usando un ListFragment e speravo di usare getSelectedItemPosition invece di creare la mia getPosition. Ho bisogno di giocarci ancora un po 'e vedere se riesco a capire come farlo. – mraviator
Ho usato anche ListFragment, ma semplicemente non funziona in questo modo. Tuttavia, se trovi qualcosa, sarei felice di sapere –