Frammentazione Android Come passare le variabili ai frammenti?
-
27-10-2019 - |
Domanda
Ho una frammentattività in esecuzione perfettamente fine con uno scivolo orizzontale liscio tra i frammenti (identici). Mi chiedevo ora come posso inviare una variabile agli oggetti frammenti?
Il mio codice sembra così:
private void initialisePaging() {
fragments = new Vector<Fragment>();
for (int i = 0; i < wiList.length; i++) {
WhiteboardImage tmpWi = wiList[i];
intent.putExtra("displayNow", tmpWi.getFilename());
fragments.add(Fragment.instantiate(this, GalleryFragment.class.getName()));
}
this.mPagerAdapter = new GalleryPagerAdapter(super.getSupportFragmentManager(), fragments);
ViewPager pager = (ViewPager) super.findViewById(R.id.viewpager);
pager.setAdapter(this.mPagerAdapter);
// Define which item of the list will be displayed
pager.setCurrentItem(4);
}
Quindi fondamentalmente nel ciclo per () sto aggiungendo più volte l'oggetto GalleryFragment al Pageradapter. Quello che ora voglio fare è che ogni Galleryfragment ottiene un ID diverso (o stringa per quella materia). Non sono riuscito a capire come passare un valore diverso a ciascun oggetto Galleryfragment all'interno di quel loop. Al momento ogni oggetto ottiene lo stesso valore.
Grazie per qualsiasi aiuto.
Soluzione
Di solito l'ho fatto in questo modo: se i dati sono disponibili dall'inizio e non cambiano, li ho analizzati come parametri di frammento. Quindi in questa funzione puoi metterli come pacchetto con .putarguments (...) al tuo frammento. E nel tuo frammento è possibile recuperare i dati con .GetArguments (...)