Ajouter un bouton à la barre d’action

J’ai essayé d’append un bouton retour à la barre d’action.

Je veux que ma vue ressemble à ceci: entrer la description de l'image ici

Je veux append le bouton retour à gauche de la barre d’action.

J’ai ajouté ce code

ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); 

mais ça ne marche pas.

Comment puis-je réparer cela?

Après avoir défini actionBar.setHomeButtonEnabled(true);

Ajoutez le code suivant:

 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: // app icon in action bar clicked; goto parent activity. this.finish(); return true; default: return super.onOptionsItemSelected(item); } } 

Ajouter

 actionBar.setHomeButtonEnabled(true); 

puis ajoutez ce qui suit

 @Override public boolean onOptionsItemSelected(MenuItem menuItem) { switch (menuItem.getItemId()) { case android.R.id.home: onBackPressed(); return true; default: return super.onOptionsItemSelected(menuItem); } } 

Comme suggéré par naXa, j’ai ajouté une vérification sur itemId , pour qu’il fonctionne correctement au cas où il y aurait plusieurs boutons dans la barre d’action.

celui-ci a fonctionné pour moi:

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_your_activity); getSupportActionBar().setDisplayHomeAsUpEnabled(true); // ... other stuff } @Override public boolean onSupportNavigateUp(){ finish(); return true; } 

La méthode onSupportNavigateUp () est appelée lorsque vous utilisez le bouton Retour dans SupportActionBar.

Après réglage

  actionBar.setHomeButtonEnabled(true); 

Vous devez configurer l’activité parente dans votre AndroidManifest.xml

     

Regardez ici pour plus d’informations http://developer.android.com/training/implementing-navigation/ancestral.html

Il y a deux façons d’aborder cette question.

Option 1: mettre à jour le manifeste Android Si l’activité Paramètres est toujours appelée à partir de la même activité, vous pouvez établir la relation dans le manifeste Android. Android affichera automatiquement le bouton “retour” dans le ActionBar

    

Option 2: Modifier un paramètre pour la barre d’action Si vous ne savez pas quelle activité appellera l’activité Paramètres, vous pouvez la créer comme ceci. Première dans votre activité qui étend ActionBarActivity (Assurez-vous que vos @imports correspondent au niveau de compatibilité que vous recherchez).

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_settings_test); ActionBar actionBar = getSupportActionBar(); actionBar.setHomeButtonEnabled(true); actionBar.setDisplayHomeAsUpEnabled(true); } 

Ensuite, détectez le bouton “retour” et appuyez sur Android pour fermer l’activité actuellement ouverte.

 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: // app icon in action bar clicked; goto parent activity. this.finish(); return true; default: return super.onOptionsItemSelected(item); } } 

Ça devrait le faire!

Vous devrez vérifier menuItem.getItemId() contre android.R.id.home dans la méthode onOptionsItemSelected

Copie du bouton Android Sherlock ActionBar Up

Plus simple et meilleur: pour API> = 16

Ajoutez simplement “parentActivityName” pour chaque activité dans Manifest. Le bouton retour vous amènera automatiquement à l’activité parent.

  

Utilisez cette option pour afficher le bouton et passer à l’activité précédente.

 final ActionBar actionBar = getSupportActionBar(); assert actionBar != null; actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setHomeAsUpIndicator(R.drawable.back_dark); @Override public boolean onOptionsItemSelected(final MenuItem item) { switch (item.getItemId()) { case android.R.id.home: onBackPressed(); return true; default: return super.onOptionsItemSelected(item); } } 

Tout d’abord, utilisez ceci:

ActionBar bar = getSupportActionBar ();

bar.setDisplayHomeAsUpEnabled (true);

Ensuite, définissez l’opération de clic de bouton dans la méthode onOptionsItemSelected

  @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: finish(); return true; default: return super.onOptionsItemSelected(item); } } 

si quelqu’un d’autre a besoin de la solution

 @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == android.R.id.home) { onBackPressed(); } return super.onOptionsItemSelected(item); } 

Ajoutez cette ligne dans la méthode onCreate ()

 getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

puis remplacer cette méthode

  @Override public boolean onSupportNavigateUp(){ finish(); return true; }