android - Toggle button not working for navigation drawer -


i implementing navigation drawer android application. got drawer work dragging side, home/toggle button on action bar doesn't change icon want , doesn't respond clicks, thou ondrawerclosed , ondraweropened methods defined in called. code follows:

    <?xml version="1.0" encoding="utf-8"?>     <android.support.v4.widget.drawerlayout      xmlns:android="http://schemas.android.com/apk/res/android"      android:id="@+id/drawer_layout"      android:layout_width="match_parent"      android:layout_height="match_parent">       <fragment         android:layout_width="match_parent"         android:layout_height="match_parent"         android:id="@+id/loadingfragment"         android:name="com.whostr.clients.android.loadingfragment" />      <fragment          android:layout_width="match_parent"         android:layout_height="match_parent"         android:id="@+id/eventfragment"         android:name="com.whostr.clients.android.eventdisplayfragment"/>      <fragment          android:layout_width="match_parent"         android:layout_height="match_parent"         android:id="@+id/emptyfragment"         android:name="com.whostr.clients.android.emptyview"/>    <!--  listview display slider menu --> <listview android:id="@+id/left_drawer"     android:layout_width = "240dp"     android:layout_height = "match_parent"     android:layout_gravity = "start"     android:choicemode = "singlechoice"     android:dividerheight = "1dp"     android:divider = "@android:color/transparent"     android:background="#111"     /> 

and in activity have following code:

    @override public void oncreate(bundle saveddatainstace) {     super.oncreate(saveddatainstace);     setcontentview(r.layout.eventdisplay);      fm = getsupportfragmentmanager();     //get fragments id     fragments[event_view]= fm.findfragmentbyid(r.id.eventfragment);     fragments[loading] = fm.findfragmentbyid(r.id.loadingfragment);     fragments[empty_view] = fm.findfragmentbyid(r.id.emptyfragment);       menulist = getresources().getstringarray(r.array.menuarray);     mdrawerlayout = (drawerlayout) findviewbyid(r.id.drawer_layout);     mdrawerlist = (listview) findviewbyid(r.id.left_drawer);      mdrawertoggle = new actionbardrawertoggle(this, mdrawerlayout, r.drawable.ic_drawer, r.string.drawwer_open, r.string.drawer_closed)                         {                             /*                              * called when drawer has settled in closed state                              */                             public void ondrawerclosed(view view)                             {                                 log.d("drawertoggle", "drawer closed");                                 super.ondrawerclosed(view);                                 getactionbar().settitle(r.string.app_name);                                 invalidateoptionsmenu(); //creates call onprepareoptionsmenu()                             }                              /*                              * called when drawer has settled in open state                              */                             public void ondraweropened(view drawerview)                             {                                 log.d("drawertoggle", "drawer opened");                                 super.ondraweropened(drawerview);                                 getactionbar().settitle("navigationdrawer");                                 invalidateoptionsmenu();                             }                         };     mdrawerlayout.setdrawerlistener(mdrawertoggle);      //set adapter list view     mdrawerlist.setadapter(new arrayadapter<string>(this, r.layout.drawer_list_item, menulist));     mdrawerlist.setonitemclicklistener(new onitemclicklistener() {          @override         public void onitemclick(adapterview<?> arg0, view view, int position,                 long id) {             log.d("navigationdrawer", "clicked on item");         }      });       fragmenttransaction transaction = fm.begintransaction();      //hide event view     transaction.hide(fragments[event_view]);     transaction.hide(fragments[empty_view]);     transaction.commit();      asynctask<string, void, eventresponsecollection> task = new geteventsnearbyasynctask().execute();     try {         if(task != null)             events = task.get().getitems();      } catch (interruptedexception | executionexception e) {         log.d("viewevent", "error when retrieving task details " + e.getmessage());     }      if(events == null)     {         //show create own event fragment         changefragment(empty_view);     }     else     {         log.d("viewevent", "i have " + events.size());         //show proper fragment first event displayed         currentevent = events.get(eventindex);         ((eventdisplayfragment) fragments[event_view]).updatefragment(currentevent);         changefragment(event_view);     } }      @override public boolean onoptionsitemselected(menuitem item) {     log.d("onoptionsitemselected", "in on item select");     //pass event actionbardrawertoggle, if returns     //true, has handled app icon touch event     if(mdrawertoggle.onoptionsitemselected(item))     {         log.d("onoptionsitemselected", "clicked on action bar item");         return true;     }      //handle other action bar items...      return super.onoptionsitemselected(item); } 

does have suggestion on can do? i've tried solutions found online make work, apparently i'm out of luck , nothing seems working :(

you have add in activity

@override public boolean onoptionsitemselected(android.view.menuitem item) {     return drawertoggle.onoptionsitemselected(item); } 

Comments

Popular posts from this blog

java - Intellij Synchronizing output directories .. -

git - Initial Commit: "fatal: could not create leading directories of ..." -