La reprise d'un fragment précédent onBackPressed()?
J'ai un HomeFragment
qui a un bouton qui, lorsqu'il est cliqué appelle suivantes:
Fragment frag = new CustFragment();
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().replace(R.id.home_container, frag).commit();
Ensuite dans mon FragmentActivity
qui est l'fragments mentionnés ci-dessus, j'ai:
@Override
public void onBackPressed() {
getFragmentManager().popBackStack();
super.onBackPressed();
}
C'est ce que j'ai essayé, mais si je suis sur le frag
fragment et j'appuie sur le bouton de retour, il ne rentre pas dans le dernier fragment (le HomeFragment
). Au lieu de cela, il tente de revenir à la dernière Activité, mais depuis il n'y a aucun (c'est à dire l'activité précédente avait finish()
invoqué sur elle), il va juste pour l'Écran d'Accueil Android.
Ce que je fais mal?
PS: Si je suis pas clair, juste un commentaire ci-dessous et je vais essayer de clarifier.
OriginalL'auteur u3l | 2014-06-30
Vous devez vous connecter pour publier un commentaire.
Changement
à
et
à
S'il ne le fait pas
super.onBackPressed();
va directement à la sortie de laActivity
Essayez d'ajouter "addToBackStack(null)" à votre opération, comme j'ai fait un lien dans ma réponse et supprimer onBackPressed complètement.
OriginalL'auteur Apoorv
Ajouter votre fragment à l'arrière de la pile à l'aide de
addToBackStack(null)
comme..OriginalL'auteur kalyan pvs
beginTransaction crée un nouveau FragmentTransaction. Il a une méthode addToBackstack. Si vous l'appelez avant de vous engager votre transaction, vous pouvez supprimer votre substituée onBackPressed complètement. Référence
OriginalL'auteur Kuno
Vous pouvez utiliser:
et pas besoin de prendre soin de
onBackPressed()
.BTW dans votre
onBackPressed()
super.onBackPressed()
signifie que vous êtes en train de changer rien.Il doit avoir été quelque chose comme:
onBackPressed
? Il pop hors de la pile automatiquement si j'appuie sur le bouton de retour, sans avoir à me mettre en œuvre?Oui, c'est pris en charge par
fragmentTransaction.addToBackStack(null);
OriginalL'auteur Archie.bpgc