2017-05-24 1 views
0

En ce moment j'ai une application qui prend l'utilisateur du SignupActivity directement à l'activité à EditProfileActivity.Créer une activité en cliquant sur le bouton Retour ActionBar

Il crée que l'on présente comme suit:

Intent intent = new Intent(this, EditProfileActivity.class); 
intent.putExtra("user", user); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); 
startActivity(intent); 

Le EditProfileActivity a un bouton de retour dans la barre d'action quand on clique dessus ferme l'application. Ce que je veux faire est de fermer l'application pour amener l'utilisateur à mon MainActivity.

J'utilise le EditProfileActivity à un autre endroit dans mon application pour éditer le profil mais venant du MainActivity. Dans ce cas, le bouton retour revient au MainActivity, ce qui est exactement ce que je veux.

Comment puis-je obtenir ceci? Ai-je besoin de démarrer le MainActivity à partir du SignupActivity, puis le prendre au EditProfile ou puis-je l'éviter?

Répondre

0

Vous avez deux options simples, au moins: - Si possible, lancez votre MainActivity avec des fonctionnalités supplémentaires, vérifiez si ce supplément est présent sur sa méthode onCreate puis démarrez votre EditProfileActivity. - Utilisez startActivityForResult pour démarrer votre EditProfileActivity et démarrez votre MainActivity si nécessaire avec sa méthode onActivityResult.

+0

La deuxième option, dans lequel l'activité 'onActivityResult' méthode dois-je commencer mon' MainActivity'? – moondaisy

+0

Si vous utilisez 'startActivityForResult' sur' SignUpActivity', vous devez remplacer la méthode 'onActivityResult' sur' SignUpActivity' elle-même. –

+0

Merci, j'ai fini par aller pour la deuxième option – moondaisy

0

Dans votre EditProfileActivity, ajoutez ci-dessous les lignes de code:

// Required to start MainActivity when ActionBar back icon pressed 
@Override 
public boolean onOptionsItemSelected(MenuItem item) { 

    switch (item.getItemId()) { 
     case android.R.id.home: { 
      Intent intent = new Intent(EditProfileActivity.this, MainActivity.class); 
      startActivity(intent); 
      finish(); 

      return true; 
     } 
    } 
    return super.onOptionsItemSelected(item); 
} 

// Required to start MainActivity when HW back KEY pressed 
@Override 
public void onBackPressed() { 
    Intent intent = new Intent(EditProfileActivity.this, MainActivity.class); 
    startActivity(intent); 
    finish(); 
} 

Espérons que cela aidera ~