Comment fournir de la navigation avec la barre d'outils du bouton home sur la v7 de la barre d'outils

J'ai une barre d'outils dans mon activité ( import android.support.v7.widget.Toolbar; ) et je suis en train de fournir de la navigation à l'aide de son bouton d'accueil. Ce que j'ai:

Manifeste:

<!-- ... -->
<activity android:name=".SettingsActivity"
          android:label="@string/settings"
          android:parentActivityName=".MainActivity"/>
<!-- ... -->

view_toolbar.xml:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:fitsSystemWindows="true"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:elevation="4dp">
</android.support.v7.widget.Toolbar>

activity_settings.xml :

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- Toolbar -->
    <include
        layout="@layout/view_toolbar" />

    <!-- ... -->

ma méthode onCreate:

super.onCreate(bundle)
setContentView(R.layout.activity_settings);

//Set the toolbar
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);

setSupportActionBar(toolbar);

Jusqu'à présent, je ne devrais pas avoir un bouton et je n'ai pas. Donc, nous allons bien. Mais quand j'ai essayé de l'ajouter, je ne pouvais pas.

J'ai d'abord essayé ceci:

getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

N'a pas fonctionné.
Ensuite, j'ai essayé ceci (comme indiqué ici):

toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
    Toast.makeText(ToolbarActivity.this, "Up clicked", 
        Toast.LENGTH_SHORT).show();
    NavUtils.navigateUpFromSameTask(ToolbarActivity.this);
}
});

J'ai même essayé une solution de contournement que j'ai vu quelque part, impliquant la création d'un mannequin de menu et d'essayer de sortir à l'événement de l' onOptionsItemSelected (qui n'est jamais appelée par la voie).

Que puis-je faire? Quelle est la bonne façon de fournir de la navigation par le biais de la barre d'outils?

  • Parce que vous déclarez parent de l'activité sur le manifeste, donc je pense que cette réponse peut aider: stackoverflow.com/a/12276100/719212
  • Quelle classe étend votre Activité?
  • AppCompatActivity
  • Avez-vous trouvé une solution à votre problème? Je suis confronté à la même chose. Pour moi, le bouton "Retour" ou icône d'accueil ne donne pas un appel à onOptionMenuSelected ni dans le Fragment, ni dans l'Activité.
  • Qu'en est onOptionsItemSelected ?? De toute façon.. L'idée principale est de prendre de l'événement à partir de android.R.id.home bouton et finish() votre activité. Essayez "Daniel Martin Shum"'s réponse ci-dessous. Ce qu'il dit est juste, même si elle ne résout pas mon problème à l'époque.
InformationsquelleAutor TheCrafter | 2015-12-15