81 votes

Écouteur onClick de la barre d'action pour le bouton Accueil

Comment puis-je mettre en œuvre une coutume onClickListener pour le bouton Home de la Barre d'Action?

J'ai déjà fait un getSupportActionBar().setDisplayHomeAsUpEnabled(true); et maintenant je veux rediriger l'utilisateur vers une certaine activité dans le cas de la Maison du bouton 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 l' onMenuItemClick.

En gros, c'est fait exactement comme dans ce lien , mais encore il ne veut pas entrer dans l'écouteur.

110voto

lynn8570 Points 897

J'utilise 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

22voto

raju Points 353

si nous utilisons la barre d'action donnée par le système, le code suivant 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;
}
 

7voto

noloman Points 2263

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

Merci beaucoup à tous pour votre aide!

3voto

Nikolay Elenkov Points 32843

Vous devez activer explicitement la maison de l'action s'exécute sur ICS. À partir de la documentation:

Remarque: Si vous utilisez l'icône pour naviguer jusqu'à la maison de l'activité, méfiez-vous que début avec Android 4.0 (API de niveau 14), vous devez explicitement activer l'icône comme un objet d'action en appelant setHomeButtonEnabled(vrai) (dans les versions précédentes, l'icône a été activé comme un élément d'action par défaut).

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