java - I'm trying to make a DrawerLayout. The issue is it will only work one time, on one activity -


so stole little guide question on here...

sliding drawer appear in activities

i have setup, , works on first activity put in.

this bodyactivity, default, homepage of app.

public class bodyactivity extends draweractivity {      private static final string tag = "bodyactivity";      private string email = "null";      @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_body);          }     [...] } 

this draweractivity

public class draweractivity extends activity       implements navigationview.onnavigationitemselectedlistener {      private static final string tag = "draweractivity";      protected relativelayout fulllayout;     protected framelayout framelayout;       private static actionbardrawertoggle toggle = null;     private static drawerlayout drawer = null;     private static navigationview navigationview = null;      @override     public void setcontentview(int layoutresid) {          fulllayout = (relativelayout) getlayoutinflater().inflate(r.layout.activity_drawer, null);             framelayout = (framelayout) fulllayout.findviewbyid(r.id.drawer_frame);          getlayoutinflater().inflate(layoutresid, framelayout, true);          super.setcontentview(fulllayout);          updatepanel();           //intent thisintent = getintent();         //updatetext(navigationview, thisintent);     }      private boolean updatepanel() {          (int = 1; <= 5; i++) {             try {                 log.d(tag, "tryin update toolbar panel... try #"+i);                 drawer = (drawerlayout) findviewbyid(r.id.drawer_layout);                  toolbar toolbar = (toolbar) findviewbyid(r.id.toolbar);                  if (toolbar == null) {                     log.d(tag, "toolbar null");                     //return;                 }                  toggle = new actionbardrawertoggle(this, drawer, toolbar, r.string.navigation_drawer_open, r.string.navigation_drawer_close);                 //drawer.setdrawertitle(gravity.left, "open navigation pane");                 //drawer.setdrawerlistener(toggle);                 //drawer.setdrawerlistener(toggle);                  navigationview = (navigationview) findviewbyid(r.id.nav_view);                 navigationview.setnavigationitemselectedlistener(this);                   drawer.post(new runnable() {                      @override                     public void run() {                          toggle.syncstate();                      }                  });                  return true;             } catch (exception e) {                 e.printstacktrace();              }          }         return true;     } } 

what doesn't make sense me, fact other activity set exact same bodyactivity. class extends draweractivity. difference, little bit of logic in oncreate method.

the for-loop in updatepanel method test.. didn't helpful. [hr]

i ran debugger had breakpoint on each of 3 variables in drawer create method.

1.) drawer 2.) toggle 3.) navigationview

on first run, leads bodyactivity, 3 variables have values set them. go through, , select value in drawer, takes me activity, has drawer class extended, , when debugger runs, 3 null.

also on sidenote, have tried making variables static, not static, i've tried make them local, of not work.

edit: per request, added giving error..

calendaractivity

@override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_calendar);      hashset<date> events = new hashset<>();     //todo add events     //events.add(new date());      calendarview cv = ((calendarview)findviewbyid(r.id.calendar_view));     cv.updatecalendar(events);      // assign event handler     cv.seteventhandler(new calendarview.eventhandler()     {         @override         public void ondaylongpress(date date)         {             // show returned day             dateformat df = simpledateformat.getdateinstance();             toast.maketext(calendaractivity.this, df.format(date), toast.length_short).show();         }          @override         public void ondaypress(date date) {          }     }); 

activity_calendar.xml - custom calendarview, if means guys

<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:weightsum="1" android:orientation="vertical" android:paddingleft="0dp" android:paddingright="0dp" android:paddingtop="@dimen/activity_vertical_margin" android:paddingbottom="@dimen/activity_vertical_margin" android:layout_margintop="42dp" tools:context=".calendar.calendaractivity">  <com.endlesssolutions.classcommunications.calendar.calendarview     android:layout_height="match_parent"     android:layout_width="match_parent"     android:id="@+id/calendar_view"/>  </linearlayout> 

literally that, imports, class title , extends draweractivity things of relavence in class. set exact same, doesn't make sense. also, activity layout shouldn't have in eyes, because either way, draweractivity finding exact same activity, because same oncreate... nothing changed (this doesn't make sense me). , according debugger, breaks on...

setcontentview(r.layout.activity_calendar); 

but i'm not sure why..


so... figured out. i'm not entirely sure why.. if explain me why made work, i'd appreciate it...

i had draweractivity in app manifest.. jus putsing around, , removed it, , not works again..

this not answer(just hint) can try use sharedpreferences store flag , check everytime oncreate called. if flag=0 put drawerlayout

after activity destroys make flag=1 , store in sharedpreference , next time come check flag flag=1 dont put drawerlayout


Comments

Popular posts from this blog

jOOQ update returning clause with Oracle -

java - Warning equals/hashCode on @Data annotation lombok with inheritance -

java - BasicPathUsageException: Cannot join to attribute of basic type -