0

I am trying to create an app. I am not getting Hamburger Button only back arrow is showing on action bar. How to show Hamburger button show on action bar. Using the following code-

import android.content.res.Configuration;
import android.os.Bundle;
import android.view.MenuItem;


import android.support.v4.app.FragmentActivity;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;



public class MainActivity extends FragmentActivity {

ActionBarDrawerToggle mDrawerToggle;
DrawerLayout mDrawer;
TextView messageTextView;
ListView mDrawerListView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Get references to the TextView and DrawerLayout
    messageTextView = (TextView) findViewById(R.id.messageTextView);
    mDrawer = (DrawerLayout) findViewById(R.id.drawer_layout);

    // These lines are needed to display the top-left hamburger button
    mDrawer.setDrawerListener(mDrawerToggle);
    getActionBar().setDisplayShowHomeEnabled(true);
    getActionBar().setDisplayHomeAsUpEnabled(true);

    // Make the hamburger button work
    mDrawerToggle = new ActionBarDrawerToggle(this,mDrawer,R.string.drawer_open,R.string.drawer_close){
        @Override
        public void onDrawerClosed(View drawerView) {
        }

        @Override
        public void onDrawerOpened(View drawerView) {
        }
    };



    // Change the TextView message when ListView item is clicked
    mDrawerListView = (ListView) findViewById(R.id.left_drawer);
    mDrawerListView.setOnItemClickListener(new ListView.OnItemClickListener() {
       @Override
       public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
           messageTextView.setText("Menu Item at position " + position + " clicked.");;
           mDrawer.closeDrawer(GravityCompat.START);
       }
    });
}

   @Override
    public boolean onOptionsItemSelected(MenuItem item) {

    int id = item.getItemId();
    if (id == R.id.action_settings) {
        return true;
    }


    if (mDrawerToggle.onOptionsItemSelected(item)) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}


@Override
protected void onPostCreate(Bundle savedInstanceState) {
    super.onPostCreate(savedInstanceState);
    // Sync the toggle state after onRestoreInstanceState has occurred.
    mDrawerToggle.syncState();
}

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    mDrawerToggle.onConfigurationChanged(newConfig);
}

}

How to show Hamburger Button on action bar.I am getting only back arrow on action bar please tell me how to display Hamburger Button on action bar.

Thanks

error description here

  • drawer = (DrawerLayout) findViewById(R.id.drawer_layout);ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); drawer.setDrawerListener(toggle); toggle.syncState(); – Saravana Kumar Chinnaraj Jun 02 '16 at 06:42

2 Answers2

0

Change,

mDrawerToggle = new ActionBarDrawerToggle(this,mDrawer,R.string.drawer_open,R.string.drawer_close){
        @Override
        public void onDrawerClosed(View drawerView) {
        }

        @Override
        public void onDrawerOpened(View drawerView) {
        }
    };

To,

mDrawerToggle = new ActionBarDrawerToggle(this, mDrawer,
                R.drawable.ic_drawer, R.string.app_name) {
            @Override
            public void onDrawerClosed(View drawerView) {
                super.onDrawerClosed(drawerView);

            }

            @Override
            public void onDrawerOpened(View drawerView) {
                super.onDrawerOpened(drawerView);

            }
        };

NOTE : You need to keep Icon in drawable folder. or you can use system's default one.

Happy coding.

V-rund Puro-hit
  • 5,518
  • 9
  • 31
  • 50
  • i added first already "R.drawable.ic_drawer" that time I click on Hamburger Button menu is open but the Hamburger didn't change to back arrow..I want when i click on Hamburger button then change in to back arrow –  Jun 02 '16 at 06:43
  • @vrund First, that's not a valid constructor for either version of `ActionBarDrawerToggle`. Second, only the v4 version takes a drawable Resource ID, and that version doesn't have the hamburger-arrow animation. – Mike M. Jun 02 '16 at 06:44
0

Initialize your actionBarDrawerToggle in this way : This should work

ActionBarDrawerToggle toggle;
toggle = new ActionBarDrawerToggle(this, mDrawer, R.string.drawer_open, R.string.drawer_close) {
            @Override
            public void onDrawerClosed(View drawerView) {
            }

            @Override
            public void onDrawerOpened(View drawerView) {
            }

            @Override
            public void onDrawerSlide(View drawerView, float slideOffset) {
                super.onDrawerSlide(drawerView, slideOffset);
                toggle.syncState();

            }


        };
erluxman
  • 18,155
  • 20
  • 92
  • 126