java - Android NullPointerException while instantiating ViewPager Fragments onCreateView but not when swyping views -
i trying fill view pager fragments ability swype between different fragments. @ moment, when fragment calls oncreateview() nullpointerexception thrown while trying set text in textview, weirdly, if grab exception can swype through other fragments display correctly.
note: first , sec items not render in viewpager, if swype lastly fragment 1 time again display correctly.
here fragment class:
public class myfragment extends fragment { public static final string extra_message = "extra_message"; public static logiccontroller controller; public static mainactivity activity; public static final myfragment newinstance(string message, logiccontroller controller, mainactivity activity) { myfragment.activity = activity; myfragment.controller = controller; myfragment f = new myfragment(); bundle bdl = new bundle(1); bdl.putstring(extra_message, message); f.setarguments(bdl); homecoming f; } @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { seek { string message = getarguments().getstring(extra_message); // view v = inflater.inflate(r.layout.myfragment_layout, container, false); view v = activity.getlayoutinflater().inflate(r.layout.myfragment_layout, null); // view mainview = pager; textview messagetextview = (textview)v.findviewbyid(r.id.testertextview); system.out.println(controller.getupdategeonetworkdelay() + messagetextview.gettext().tostring()); messagetextview.settext(message); homecoming v; } grab (exception e) { e.printstacktrace(); homecoming null; } } }
here fragment pager adapter:
public class mainpageadapter extends fragmentpageradapter { private list<fragment> fragments; public mainpageadapter(fragmentmanager fm, list<fragment> fragments) { super(fm); this.fragments = fragments; } @override public fragment getitem(int position) { fragment frag = this.fragments.get(position); system.out.println("fragment: " + frag + " pos: " + position); homecoming frag; } @override public int getcount() { homecoming this.fragments.size(); } }
the exception thrown on line:
messagetextview.settext(message);
i have reason believe problem due not referencing textview beyond level of expertise.
logcat:
06-24 17:30:44.962: w/system.err(25639): java.lang.nullpointerexception 06-24 17:30:44.962: w/system.err(25639): @ com.g.geonet.items.myfragment.oncreateview(myfragment.java:48) 06-24 17:30:44.962: w/system.err(25639): @ android.support.v4.app.fragment.performcreateview(fragment.java:1500) 06-24 17:30:44.962: w/system.err(25639): @ android.support.v4.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:927) 06-24 17:30:44.962: w/system.err(25639): @ android.support.v4.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:1104) 06-24 17:30:44.962: w/system.err(25639): @ android.support.v4.app.backstackrecord.run(backstackrecord.java:682) 06-24 17:30:44.962: w/system.err(25639): @ android.support.v4.app.fragmentmanagerimpl.execpendingactions(fragmentmanager.java:1467) 06-24 17:30:44.962: w/system.err(25639): @ android.support.v4.app.fragmentmanagerimpl.executependingtransactions(fragmentmanager.java:472) 06-24 17:30:44.962: w/system.err(25639): @ android.support.v4.app.fragmentpageradapter.finishupdate(fragmentpageradapter.java:141) 06-24 17:30:44.962: w/system.err(25639): @ android.support.v4.view.viewpager.populate(viewpager.java:1068) 06-24 17:30:44.962: w/system.err(25639): @ android.support.v4.view.viewpager.populate(viewpager.java:914) 06-24 17:30:44.962: w/system.err(25639): @ android.support.v4.view.viewpager.onmeasure(viewpager.java:1436) 06-24 17:30:44.962: w/system.err(25639): @ android.view.view.measure(view.java:16504) 06-24 17:30:44.962: w/system.err(25639): @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:5125) 06-24 17:30:44.962: w/system.err(25639): @ android.widget.linearlayout.measurechildbeforelayout(linearlayout.java:1404) 06-24 17:30:44.962: w/system.err(25639): @ android.widget.linearlayout.measurevertical(linearlayout.java:695) 06-24 17:30:44.962: w/system.err(25639): @ android.widget.linearlayout.onmeasure(linearlayout.java:588) 06-24 17:30:44.962: w/system.err(25639): @ android.view.view.measure(view.java:16504) 06-24 17:30:44.962: w/system.err(25639): @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:5125) 06-24 17:30:44.962: w/system.err(25639): @ android.widget.linearlayout.measurechildbeforelayout(linearlayout.java:1404) 06-24 17:30:44.962: w/system.err(25639): @ android.widget.linearlayout.measurevertical(linearlayout.java:695) 06-24 17:30:44.962: w/system.err(25639): @ android.widget.linearlayout.onmeasure(linearlayout.java:588) 06-24 17:30:44.962: w/system.err(25639): @ android.view.view.measure(view.java:16504) 06-24 17:30:44.962: w/system.err(25639): @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:5125) 06-24 17:30:44.962: w/system.err(25639): @ android.widget.framelayout.onmeasure(framelayout.java:310) 06-24 17:30:44.962: w/system.err(25639): @ android.view.view.measure(view.java:16504) 06-24 17:30:44.962: w/system.err(25639): @ com.sothree.slidinguppanel.slidinguppanellayout.onmeasure(slidinguppanellayout.java:516) 06-24 17:30:44.962: w/system.err(25639): @ android.view.view.measure(view.java:16504) 06-24 17:30:44.962: w/system.err(25639): @ android.widget.relativelayout.measurechildhorizontal(relativelayout.java:719) 06-24 17:30:44.962: w/system.err(25639): @ android.widget.relativelayout.onmeasure(relativelayout.java:455) 06-24 17:30:44.962: w/system.err(25639): @ android.view.view.measure(view.java:16504) 06-24 17:30:44.962: w/system.err(25639): @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:5125) 06-24 17:30:44.962: w/system.err(25639): @ android.widget.framelayout.onmeasure(framelayout.java:310) 06-24 17:30:44.962: w/system.err(25639): @ android.view.view.measure(view.java:16504) 06-24 17:30:44.962: w/system.err(25639): @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:5125) 06-24 17:30:44.962: w/system.err(25639): @ android.widget.linearlayout.measurechildbeforelayout(linearlayout.java:1404) 06-24 17:30:44.962: w/system.err(25639): @ android.widget.linearlayout.measurevertical(linearlayout.java:695) 06-24 17:30:44.962: w/system.err(25639): @ android.widget.linearlayout.onmeasure(linearlayout.java:588) 06-24 17:30:44.972: w/system.err(25639): @ android.view.view.measure(view.java:16504) 06-24 17:30:44.972: w/system.err(25639): @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:5125) 06-24 17:30:44.972: w/system.err(25639): @ android.widget.framelayout.onmeasure(framelayout.java:310) 06-24 17:30:44.972: w/system.err(25639): @ com.android.internal.policy.impl.phonewindow$decorview.onmeasure(phonewindow.java:2291) 06-24 17:30:44.972: w/system.err(25639): @ android.view.view.measure(view.java:16504) 06-24 17:30:44.972: w/system.err(25639): @ android.view.viewrootimpl.performmeasure(viewrootimpl.java:1912) 06-24 17:30:44.972: w/system.err(25639): @ android.view.viewrootimpl.measurehierarchy(viewrootimpl.java:1109) 06-24 17:30:44.972: w/system.err(25639): @ android.view.viewrootimpl.performtraversals(viewrootimpl.java:1291) 06-24 17:30:44.972: w/system.err(25639): @ android.view.viewrootimpl.dotraversal(viewrootimpl.java:996) 06-24 17:30:44.972: w/system.err(25639): @ android.view.viewrootimpl$traversalrunnable.run(viewrootimpl.java:5600) 06-24 17:30:44.972: w/system.err(25639): @ android.view.choreographer$callbackrecord.run(choreographer.java:761) 06-24 17:30:44.972: w/system.err(25639): @ android.view.choreographer.docallbacks(choreographer.java:574) 06-24 17:30:44.972: w/system.err(25639): @ android.view.choreographer.doframe(choreographer.java:544) 06-24 17:30:44.972: w/system.err(25639): @ android.view.choreographer$framedisplayeventreceiver.run(choreographer.java:747) 06-24 17:30:44.972: w/system.err(25639): @ android.os.handler.handlecallback(handler.java:733) 06-24 17:30:44.972: w/system.err(25639): @ android.os.handler.dispatchmessage(handler.java:95) 06-24 17:30:44.972: w/system.err(25639): @ android.os.looper.loop(looper.java:136) 06-24 17:30:44.972: w/system.err(25639): @ android.app.activitythread.main(activitythread.java:5001) 06-24 17:30:44.972: w/system.err(25639): @ java.lang.reflect.method.invokenative(native method) 06-24 17:30:44.972: w/system.err(25639): @ java.lang.reflect.method.invoke(method.java:515) 06-24 17:30:44.972: w/system.err(25639): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:785) 06-24 17:30:44.972: w/system.err(25639): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:601) 06-24 17:30:44.972: w/system.err(25639): @ dalvik.system.nativestart.main(native method)
thanks help.
please check line :
system.out.println(controller.getupdategeonetworkdelay() + messagetextview.gettext().tostring()); messagetextview.settext(message);
my guess message content of arguments in bundle passed newinstance should this:
messagetextview.settext(getarguments().getstringextra(extra_message,"message not passed"));
also final modifier public static final myfragment newinstance in line seems inappropriate remove it.
java android android-fragments nullpointerexception android-viewpager
No comments:
Post a Comment