How to implement navigation drawer in all activities in android -
i have piece of code supposed show navigation drawer in activities. code not show errors while running unfortunately stopped error after checking logcat shows java null pointer exception.
these has been declared
private drawerlayout mdrawerlayout; private listview mdrawerlist; private actionbardrawertoggle mdrawertoggle; protected relativelayout _completelayout, _activitylayout; private charsequence mdrawertitle; private charsequence mtitle; private arraylist<navdraweritem> navdraweritems; private navidrawerlistadapter adapter; after oncreate
public void set(string[] navmenutitles, typedarray navmenuicons) { mtitle = mdrawertitle = gettitle(); mdrawerlayout = (drawerlayout) findviewbyid(r.id.drawer_layout); mdrawerlist = (listview) findviewbyid(r.id.left_drawer); navdraweritems = new arraylist<navdraweritem>(); // adding nav drawer items if (navmenuicons == null) { (int = 0; < navmenutitles.length; i++) { navdraweritems.add(new navdraweritem(navmenutitles[i])); } } else { (int = 0; < navmenutitles.length; i++) { navdraweritems.add(new navdraweritem(navmenutitles[i], navmenuicons.getresourceid(i, -1))); } } mdrawerlist.setonitemclicklistener(new slidemenuclicklistener()); // setting nav drawer list adapter adapter = new navidrawerlistadapter(getapplicationcontext(), navdraweritems); mdrawerlist.setadapter(adapter); // enabling action bar app icon , behaving toggle button getsupportactionbar().setdisplayhomeasupenabled(true); getsupportactionbar().sethomebuttonenabled(true); // getsupportactionbar().seticon(r.drawable.ic_drawer); mdrawertoggle = new actionbardrawertoggle(this, mdrawerlayout, r.drawable.ic_launcher, // nav menu toggle icon r.string.app_name, // nav drawer open - description // accessibility r.string.app_name // nav drawer close - description // accessibility ) { public void ondrawerclosed(view view) { getsupportactionbar().settitle(mtitle); // calling onprepareoptionsmenu() show action bar icons supportinvalidateoptionsmenu(); } public void ondraweropened(view drawerview) { getsupportactionbar().settitle(mdrawertitle); // calling onprepareoptionsmenu() hide action bar icons supportinvalidateoptionsmenu(); } }; mdrawerlayout.setdrawerlistener(mdrawertoggle); } private class slidemenuclicklistener implements listview.onitemclicklistener { @override public void onitemclick(adapterview<?> parent, view view, int position, long id) { // display view selected nav drawer item displayview(position); } } @override public boolean onprepareoptionsmenu(menu menu) { // if nav drawer opened, hide action items // boolean draweropen = mdrawerlayout.isdraweropen(mdrawerlist); // menu.finditem(r.id.action_settings).setvisible(!draweropen); return super.onprepareoptionsmenu(menu); } @override public void settitle(charsequence title) { mtitle = title; getactionbar().settitle(mtitle); } /** * when using actionbardrawertoggle, must call during * onpostcreate() , onconfigurationchanged()... */ @override protected void onpostcreate(bundle savedinstancestate) { super.onpostcreate(savedinstancestate); // sync toggle state after onrestoreinstancestate has occurred. mdrawertoggle.syncstate(); } the null pointer exception points @ mdrawertoogle.syncstate(); in onpostcreate
you don't need have different navigation drawers different activities. have single activity navigationdrawer , make others fragments. have this.
Comments
Post a Comment