"Back button" using getSupportActionbar and appcompat v7 toolbar

András Ferencz picture András Ferencz · Dec 1, 2014 · Viewed 87.5k times · Source

I'm using the new toolbar from the Appcompat V7 library and I'm making an application with navigation drawer and with fragments.

In some fragments I don't want to show the hamburger icon but the arrow instead... That is fine I did this in this way:

mDrawerToggle.setDrawerIndicatorEnabled(false);

mDrawerToggle.syncState();
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);

getSupportActionBar().setHomeAsUpIndicator(R.drawable.abc_ic_ab_back_mtrl_am_alpha);

My question is that: How or where i need to set up the home button lisener or what i need to listen for the "back" button ? I want to call the main backpressed method and to set back the navigation drawer icon with the hamburger icon..

Answer

Raja Jawahar picture Raja Jawahar · Oct 9, 2015

Add this method in onCreate():

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

Then override the onOptionItemSelected() as below:

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