69 votes

Android - Simuler Le Bouton De Retour

Lorsque j'appuie sur un bouton dans mon application, j'ai besoin de retourner à la dernière activité.

Des idées?

95voto

Chris Thompson Points 18375

Appelant finish() de l'activité que vous voulez à la fin devrait s'occuper de cela.

70voto

黄雨伞 Points 93

Juste pour l'enregistrement: La méthode décrite ne pas faire la même chose que le bouton de retour, dans certains cas, mais vous pouvez l'appeler

this.onBackPressed();

ou

getActivity().onBackPressed();

si vous êtes dans un fragment de réaliser exactement le même comportement.

37voto

zajac.m2 Points 348

lors de l'utilisation de fragments:

getFragmentManager().popBackStack();

ou

getSupportFragmentManager().popBackStack();

si vous utilisez android.de soutien.v4.package de l'application

2voto

RenniePet Points 2388

C'est une situation où le même fragment peut parfois être le seul fragment dans une activité, et parfois partie d'un multi-fragment d'activité, par exemple sur une tablette où les deux fragments sont visibles en même temps.

/**
 * Method that can be used by a fragment that has been started by MainFragment to terminate
 * itself. There is some controversy as to whether a fragment should remove itself from the back
 * stack, or if that is a violation of the Android design specs for fragments. See here:
 * http://stackoverflow.com/questions/5901298/how-to-get-a-fragment-to-remove-itself-i-e-its-equivalent-of-finish
 */
public static void fragmentImplementCancel(Fragment fragment) {

    FragmentActivity fragmentActivity = fragment.getActivity();
    FragmentManager fragmentManager = fragmentActivity.getSupportFragmentManager();

    if (fragmentManager.getBackStackEntryCount() == 1) {
        fragmentManager.popBackStack();
    }
    else {
        fragmentActivity.finish();
    }
}

Ce code peut être appelé à mettre en œuvre un bouton Annuler, par exemple.

    if (theButton.getId() == R.id.btnStatusCancel) {
        StaticMethods.fragmentImplementCancel(this);
    }

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