L’auditeur onClick d’Action Bar pour le bouton Accueil

Comment puis-je implémenter un onClickListener personnalisé pour le bouton Accueil de la barre d’action?

J’ai déjà fait un getSupportActionBar().setDisplayHomeAsUpEnabled(true); et maintenant je veux redirect l’utilisateur vers une certaine activité si le bouton Home est cliqué.

J’ai essayé avec:

 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: item.setOnMenuItemClickListener(new OnMenuItemClickListener() { public boolean onMenuItemClick(MenuItem item) { Intent i = new Intent(); i.setClass(BestemmingActivity.this, StartActivity.class); i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(i); return true; } }); default: return super.onOptionsItemSelected(item); } } 

mais il n’entre jamais dans le onMenuItemClick .

Fondamentalement, cela se fait exactement comme dans ce lien mais cela n’entre toujours pas dans l’auditeur.

J’utilise l’ actionBarSherlock , après avoir défini supportActionBar.setHomeButtonEnabled(true);
nous pouvons remplacer la méthode onMenuItemSelected:

 @Override public boolean onMenuItemSelected(int featureId, MenuItem item) { int itemId = item.getItemId(); switch (itemId) { case android.R.id.home: toggle(); // Toast.makeText(this, "home pressed", Toast.LENGTH_LONG).show(); break; } return true; } 

J’espère que ce travail pour vous ~~~ bonne chance

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 true; } return super.onOptionsItemSelected(item); } 

si nous utilisons le système, la barre d’action suivante code bien fonctionne bien

 getActionBar().setHomeButtonEnabled(true); @Override public boolean onMenuItemSelected(int featureId, MenuItem item) { int itemId = item.getItemId(); switch (itemId) { case android.R.id.home: //do your action here. break; } return true; } 

Correction: pas besoin d’utiliser un setOnMenuItemClickListener . Il suffit d’appuyer sur le bouton pour créer et lancer l’activité dans l’intention.

Merci beaucoup à tous pour votre aide!

Vous devez explicitement activer l’action home si vous utilisez ICS. De la documentation :

Remarque: Si vous utilisez l’icône pour naviguer jusqu’à l’activité d’accueil, sachez qu’à partir d’Android 4.0 (API niveau 14), vous devez explicitement activer l’icône en tant qu’élément d’action en appelant setHomeButtonEnabled (true) (dans les versions précédentes, L’icône a été activée comme élément d’action par défaut.

Le meilleur moyen de personnaliser la barre d’action surClickListener est onSupportNavigateUp ()

Ce code sera un lien utile pour aider le code

répond à la moitié de ce qui se passe. if onOptionsItemSelected ne contrôle pas le bouton homeAsUp lorsque l’activité parent est homeAsUp le homeAsUp manifest.xml passe à l’activité parent. utiliser comme ceci dans l’étiquette d’activité:

    

vous devez supprimer votre Override onOptionsItemSelected et replacer votre onCreateOptionsMenu avec ce code

 @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_action_bar_finish_order_stop, menu); menu.getItem(0).setOnMenuItemClickListener(new FinishOrderStopListener(this, getApplication(), selectedChild)); return true; }