279 votes

Clear back pile à l’aide de fragments

J’ai porté mon appli Android à nid d’abeilles et j’ai fait un gros refactor afin d’utiliser les fragments. Dans ma version précédente, lorsque j’ai appuyé sur le bouton Home j’ai utilisé pour faire une ACTIVITY_CLEAR_TOP afin de réinitialiser la pile back.

Maintenant mon application est juste une seule activité avec plusieurs fragmens, donc quand j’appuie sur le bouton Home j’ai juste remplacer un des fragments à l’intérieur. Comment puis-je effacer ma pile de retour sans avoir à utiliser startActivity avec l’indicateur ACTIVITY_CLEAR_TOP ?

470voto

PJL Points 5865

J'ai posté quelque chose de similaire ici

De Joachim de la réponse, de Dianne Hackborn:

http://groups.google.com/group/android-developers/browse_thread/thread/d2a5c203dad6ec42

J'ai fini juste à l'aide de:

FragmentManager fm = getActivity().getSupportFragmentManager();
for(int i = 0; i < fm.getBackStackEntryCount(); ++i) {    
    fm.popBackStack();
}

Mais pourrait également avoir utilisé quelque chose comme:

FragmentManager.popBackStack(String name, FragmentManager.POP_BACK_STACK_INCLUSIVE)

Qui pop de tous les états jusqu'à l'nommé. Vous pouvez ensuite il suffit de remplacer le fragment avec ce que vous voulez

197voto

Morten Holmgaard Points 713

Pour faire une réponse pour Warpzit commentaire et qu’il easiere de trouver pour les autres, utilisez :

18voto

belphegor Points 34

Réponse acceptée n’était pas assez pour moi. J’ai eu à utiliser :

1voto

saulobrito Points 1390

J’ai obtenu ce travaille de cette façon :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X