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
Post a Comment