J'ai donc ce morceau de code ici, je crée un nouveau fragment et le remplace par un autre fragment. Cela fonctionne bien. Cependant, j'ai remarqué que sur la première ligne le constructeur est appelé mais les onAttach()
, onCreate()
ne le sont pas. Si je devais décommenter la deuxième ligne, cela ne fonctionnera pas car updateItem(URL)
nécessite un webView initié dans la fonction onCreate().Remplacer des fragments dans une activité n'appelant pas Onttach, onCreate, onCreateView, etc
DetailViewFragment detailFragment = new DetailViewFragment();
//detailFragment.updateItem(URL);
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.displayList, detailFragment);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.addToBackStack(null);
ft.commit();
Apprécierez toute aide qui fonctionnera avec la deuxième ligne décommentée.
Je crois que onAttach, onCreate, etc. ne sont pas appelés tant que le fragment n'a pas été validé pour l'activité. Donc, ils devraient être appelés sur la dernière ligne de ce code. Docs Android sur le cycle de vie: http://developer.android.com/reference/android/app/Fragment.html#Lifecycle Avez-vous essayé d'utiliser ft.add (...)? –