Reputation: 699
public class MainActivity extends ActionBarActivity {
private String[] drawerListItems;
private ListView drawerListView;
private DrawerLayout drawerlayout;
private ActionBarDrawerToggle drawToggle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
drawerlayout = (DrawerLayout) findViewById(R.id.drawer_layout);
drawerListItems = getResources().getStringArray(R.array.DrawreMenue);
drawerListView = (ListView) findViewById(R.id.slidermenu);
Toolbar toolbar=(Toolbar)findViewById(R.id.toolbar);
//getActionBar().setIcon(R.drawable.ic_launcher);
drawerListView.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, drawerListItems));
//drawerListView.setOnItemClickListener(this);
drawerListView.setOnItemClickListener(new DrawerItemClickListener());
drawToggle = new ActionBarDrawerToggle(this, drawerlayout,toolbar,
R.string.draw_open,
R.string.draw_close
) {
public void onDrawerClosed(View view) {
super.onDrawerClosed(view);
}
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
}
} ;
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setIcon(R.drawable.ic_drawer);
drawerlayout.setDrawerListener(drawToggle);
drawToggle.syncState();
}
I am Using this code in Android Studio
minSdkVersion 8
targetSdkVersion 21
It is showing Drawer Icon but on-click it not opening Drawer List and not Closing it when it opened by sliding
Upvotes: 0
Views: 1639
Reputation: 3675
You need to add two more methods onPostCreate
and onConfigurationChanged
mDrawerToggle = new ActionBarDrawerToggle(
this, /* host Activity */
mDrawerLayout, /* DrawerLayout object */
R.drawable.ic_drawer, /* nav drawer icon to replace 'Up' caret */
R.string.drawer_open, /* "open drawer" description */
R.string.drawer_close /* "close drawer" description */
) {
/** Called when a drawer has settled in a completely closed state. */
public void onDrawerClosed(View view) {
super.onDrawerClosed(view);
getActionBar().setTitle(mTitle);
}
/** Called when a drawer has settled in a completely open state. */
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
getActionBar().setTitle(mDrawerTitle);
}
};
// Set the drawer toggle as the DrawerListener
mDrawerLayout.setDrawerListener(mDrawerToggle);
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
}
@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);
}
Upvotes: 1
Reputation: 131
first of all you need to find id of the Button that you want to click to open Drawer then just put code in click listener to open
mDrawerLayout.openDrawer(mDrawer);
and to close drawer put
mDrawerLayout.closeDrawer(mDrawer);
Upvotes: 0