Quelle est la signification de addToBackStack (null) suivi d'un commit ()?
Citant des documents:
En appelant addToBackStack (), la transaction de remplacement est enregistrée dans la pile arrière afin que l'utilisateur puisse annuler la transaction et ramener le fragment précédent en appuyant sur le bouton Retour.
Si vous ajoutez plusieurs modifications à la transaction (comme un autre add () ou remove ()) et appelez addToBackStack (), toutes les modifications appliquées avant d'appeler commit () sont ajoutées à la pile arrière en une seule transaction et le bouton Retour va les inverser tous ensemble.
L'ordre dans lequel vous ajoutez des modifications à une FragmentTransaction n'a pas d'importance, sauf:
Vous devez appeler en commit()
dernier. Si vous ajoutez plusieurs fragments au même conteneur, l'ordre dans lequel vous les ajoutez détermine l'ordre dans lequel ils apparaissent dans la hiérarchie des vues.
Il faut donc s'engager à la fin.
Pourquoi avez-vous besoin de passer un paramètre nul à addToBackStack?
Il n'a pas besoin d'être nul, cela peut être une chaîne. Si vous ne le souhaitez pas, transmettez simplement null.
public abstract FragmentTransaction addToBackStack (nom de chaîne)
Ajouté au niveau d'API 11 Ajoutez cette transaction à la pile arrière. Cela signifie que la transaction sera mémorisée après sa validation et inversera son opération lorsqu'elle sera ensuite retirée de la pile.
Paramètres nom Nom facultatif pour cet état de la pile arrière, ou null.
Concernant:
On dirait que ce code est inutile car j'ai exécuté le code sans la dernière ligne .addToBackStack (null) .commit () et il a fonctionné sans aucun problème
Si vous souhaitez accéder au fragment précédent, ajoutez-le à backstack. Cela dépend donc si vous souhaitez ajouter le fragment à la backstack.
Comment obtenir ce fragment après avoir été ajouté comme ça?
Vous disposez déjà de l'instance de fragment firstFragment
. Donc je ne sais pas ce que vous entendez par obtenir le fragment plus tard.
Plus d'information @
http://developer.android.com/guide/components/fragments.html
http://developer.android.com/reference/android/app/FragmentTransaction.html#addToBackStack(java.lang.String)