Question Android: Retour à l'activité précédente


Je veux faire quelque chose de simple sur l'application Android. Comment est-il possible de revenir à une activité précédente?

Quel code dois-je retourner à l'activité précédente?


435
2017-10-27 23:13


origine


Réponses:


Les activités Android sont stockées dans la pile d'activités. Revenir à une activité précédente peut signifier deux choses.

  1. Vous avez ouvert la nouvelle activité à partir d'une autre activité avec startActivityForResult. Dans ce cas, vous pouvez simplement appeler le finishActivity () fonctionner à partir de votre code et cela vous ramènera à l'activité précédente.

  2. Gardez une trace de la pile d'activité. Chaque fois que vous démarrez une nouvelle activité avec une intention, vous pouvez spécifier un drapeau d'intention comme FLAG_ACTIVITY_REORDER_TO_FRONT ou FLAG_ACTIVITY_PREVIOUS_IS_TOP. Vous pouvez l'utiliser pour mélanger les activités de votre application. Je ne les ai pas utilisés beaucoup cependant. Regardez les drapeaux ici: http://developer.android.com/reference/android/content/Intent.html

Comme mentionné dans les commentaires, si l'activité est ouverte avec startActivity() alors on peut le fermer avec finish(). Si vous souhaitez utiliser le bouton Haut, vous pouvez l'attraper onOptionsSelected(MenuItem item) méthode avec la vérification de l'ID de l'article contre android.R.id.home contrairement à R.id.home comme mentionné dans les commentaires.


420
2017-10-27 23:49



Essayer Activity#finish(). C'est plus ou moins ce que fait le bouton de retour par défaut.


204
2017-10-27 23:47



Il suffit d'écrire sur clic terminer(). Cela vous amènera à l'activité précédente.


68
2017-09-21 08:50



Juste ça

super.onBackPressed();

61
2018-01-18 06:55



intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

Cela vous amènera à une activité précédente en gardant sa pile et en supprimant toutes les activités de la pile.

Par exemple, si la pile était A-> B-> C-> D et que vous démarrez B avec ce drapeau, la pile sera A-> B


27
2018-04-10 08:14



Voulez-vous prendre le contrôle du comportement du bouton de retour? Vous pouvez remplacer le bouton Précédent (pour accéder à une activité spécifique) via l'une des deux méthodes.

Pour Android 1.6 et ci-dessous:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
        // do something on back.
        return true;
    }

    return super.onKeyDown(keyCode, event);
}

Ou si vous ne supportez que Android 2.0 ou supérieur:

@Override
public void onBackPressed() {
    // do something on back.
    return;
}

Pour plus de détails: http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html


19
2017-10-27 23:41



Appelez simplement cette méthode pour terminer l'activité en cours ou revenir en arrière sur onBackPressed

finish();

OU

onBackPressed();

15
2018-02-04 09:32



Si vous avez configuré correctement le fichier AndroidManifest.xml avec le parent d'activité, vous pouvez utiliser:

NavUtils.navigateUpFromSameTask(this);

Où c'est l'activité de votre enfant.


10
2017-11-27 12:23



si vous voulez aller juste pour aller à l'activité précédente

finish();

OU

onBackPressed();

si vous voulez aller à la deuxième activité ou en dessous de cette utilisation, procédez comme suit:

intent = new Intent(MyFourthActivity.this , MySecondActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
//Bundle is optional
Bundle bundle = new Bundle();
bundle.putString("MyValue1", val1);
intent.putExtras(bundle);
//end Bundle
startActivity(intent);

10
2018-06-30 21:27



Ajoutez ceci dans votre méthode onCLick (), il retournera à votre activité précédente

terminer();

ou Vous pouvez l'utiliser. Cela a fonctionné parfaitement pour moi

 @Override
  public boolean onOptionsItemSelected(MenuItem item) {
  int id = item.getItemId();

      if ( id == android.R.id.home ) {
         finish();
         return true;
       }

  return super.onOptionsItemSelected(item);
  }

8
2017-09-20 12:41



Vous pouvez appeler explicitement onBackPressed est le moyen le plus simple
Référer Retourner à l'activité précédente pour plus de détails


6
2018-04-13 15:16