this question has answer here:
- what nullpointerexception, , how fix it? 12 answers
a null pointer exception caused while trying set oncheckedstatelistener on togglebutton. exception? checked development document , did accordingly..
public class accountviewdetailsfragment extends fragment { togglebutton togglebutton; linearlayout testlinearlayout; public accountviewdetailsfragment() { // required empty public constructor } @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { // inflate layout fragment return inflater.inflate(r.layout.account_view_details_fragment, container, false); } @override public void onactivitycreated(@nullable bundle savedinstancestate) { super.onactivitycreated(savedinstancestate); testlinearlayout = (linearlayout)getview().findviewbyid(r.id.toggletestlinearlayout); togglebutton = (togglebutton)getview().findviewbyid(r.id.togglebuttontest); togglebutton.setoncheckedchangelistener(new compoundbutton.oncheckedchangelistener() { @override public void oncheckedchanged(compoundbutton compoundbutton, boolean ischecked) { if(ischecked){ testlinearlayout.setvisibility(view.gone); } if(!ischecked){ testlinearlayout.setvisibility(view.visible); } } }); } }
here xml layout
<framelayout 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:background="@color/ivory" tools:context="com.cube_me.cubeme.accounts.accountviewattachedfragment"> <!-- todo: update blank fragment layout --> <linearlayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <scrollview android:layout_width="match_parent" android:layout_height="wrap_content"> <linearlayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <linearlayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:background="@color/groupbackground"> <textview android:layout_width="350dp" android:layout_height="@dimen/accountviewdetail_grouptv_height" android:text="inquiries" android:gravity="start|center" android:paddingleft="@dimen/accountviewdetail_groupleftpadding" android:textsize="@dimen/account_grouptextsize" android:textcolor="@color/maintext"/> <togglebutton android:id="@+id/togglebuttontest" style="@style/mytoggle" android:layout_width="20dp" android:layout_height="20dp" android:layout_gravity="center" android:layout_alignparentright="true" /> </linearlayout> <linearlayout android:id="@+id/toggletestlinearlayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:visibility="gone"> <textview android:id="@+id/account_companyshippingaddresstextview" android:layout_width="@dimen/account_tv_viewwidth" android:layout_height="match_parent" android:background="@color/textviewbackground" android:gravity="right" android:paddingright="@dimen/account_tv_rightpadding" android:paddingtop="20dp" android:text="shipping address" android:textcolor="@color/secondarytext" android:textsize="@dimen/account_secondarytextsize" /> <linearlayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <edittext android:id="@+id/account_shippingaddressstreetedittext" android:layout_width="match_parent" android:layout_height="@dimen/account_viewheight" android:background="@drawable/custom_edittext" android:hint="street" android:imeoptions="actionnext" android:inputtype="text" android:paddingleft="@dimen/edittext_leftpadding" android:textcolor="@color/maintext" android:textsize="@dimen/account_maintextsize" android:theme="@style/edittexttheme" /> <edittext android:id="@+id/account_shippingaddressbuildingnoedittext" android:layout_width="match_parent" android:layout_height="@dimen/account_viewheight" android:background="@drawable/custom_edittext" android:hint="building number" android:imeoptions="actionnext" android:inputtype="text" android:paddingleft="@dimen/edittext_leftpadding" android:textcolor="@color/maintext" android:textsize="@dimen/account_maintextsize" android:theme="@style/edittexttheme" /> <edittext android:id="@+id/account_shippingaddresscityedittext" android:layout_width="match_parent" android:layout_height="@dimen/account_viewheight" android:background="@drawable/custom_edittext" android:hint="city" android:imeoptions="actionnext" android:inputtype="text" android:paddingleft="@dimen/edittext_leftpadding" android:textcolor="@color/maintext" android:textsize="@dimen/account_maintextsize" android:theme="@style/edittexttheme" /> <edittext android:id="@+id/account_shippingaddressstateedittext" android:layout_width="match_parent" android:layout_height="@dimen/account_viewheight" android:background="@drawable/custom_edittext" android:hint="state" android:imeoptions="actionnext" android:inputtype="text" android:paddingleft="@dimen/edittext_leftpadding" android:textcolor="@color/maintext" android:textsize="@dimen/account_maintextsize" android:theme="@style/edittexttheme" /> <edittext android:id="@+id/account_shippingaddresspoboxedittext" android:layout_width="match_parent" android:layout_height="@dimen/account_viewheight" android:background="@drawable/custom_edittext" android:hint="po box" android:imeoptions="actionnext" android:inputtype="text" android:paddingleft="@dimen/edittext_leftpadding" android:textcolor="@color/maintext" android:textsize="@dimen/account_maintextsize" android:theme="@style/edittexttheme" /> <edittext android:id="@+id/account_shippingaddresspincodeedittext" android:layout_width="match_parent" android:layout_height="@dimen/account_viewheight" android:background="@drawable/custom_edittext" android:hint="pin code" android:imeoptions="actionnext" android:inputtype="text" android:paddingleft="@dimen/edittext_leftpadding" android:textcolor="@color/maintext" android:textsize="@dimen/account_maintextsize" android:theme="@style/edittexttheme" /> <edittext android:id="@+id/account_shippingaddresscountryedittext" android:layout_width="match_parent" android:layout_height="@dimen/account_viewheight" android:background="@drawable/custom_edittext" android:hint="country" android:imeoptions="actionnext" android:inputtype="text" android:paddingleft="@dimen/edittext_leftpadding" android:textcolor="@color/maintext" android:textsize="@dimen/account_maintextsize" android:theme="@style/edittexttheme" /> </linearlayout> </linearlayout> </linearlayout> </scrollview> </linearlayout>
the exception caused
fatal exception: main process: com.cube_me.cubeme, pid: 7869 java.lang.nullpointerexception: attempt invoke virtual method 'void android.widget.togglebutton.setonclicklistener(android.view.view$onclicklistener)' on null object reference @ com.cube_me.cubeme.accounts.accountviewdetailsfragment.onactivitycreated(accountviewdetailsfragment.java:42) @ android.support.v4.app.fragment.performactivitycreated(fragment.java:2083) @ android.support.v4.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:1129) @ android.support.v4.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:1286) @ android.support.v4.app.backstackrecord.run(backstackrecord.java:758) @ android.support.v4.app.fragmentmanagerimpl.execsingleaction(fragmentmanager.java:1632) @ android.support.v4.app.backstackrecord.commitnowallowingstateloss(backstackrecord.java:637) @ android.support.v4.app.fragmentpageradapter.finishupdate(fragmentpageradapter.java:143) @ android.support.v4.view.viewpager.populate(viewpager.java:1237) @ android.support.v4.view.viewpager.populate(viewpager.java:1085) @ android.support.v4.view.viewpager.onmeasure(viewpager.java:1611) @ android.view.view.measure(view.java:17547) @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:5535) @ android.widget.linearlayout.measurechildbeforelayout(linearlayout.java:1436) @ android.widget.linearlayout.measurevertical(linearlayout.java:722) @ android.widget.linearlayout.onmeasure(linearlayout.java:613) @ android.view.view.measure(view.java:17547) @ android.support.v4.widget.drawerlayout.onmeasure(drawerlayout.java:1079) @ android.view.view.measure(view.java:17547) @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:5535) @ android.widget.framelayout.onmeasure(framelayout.java:436) @ android.support.v7.widget.contentframelayout.onmeasure(contentframelayout.java:135) @ android.view.view.measure(view.java:17547) @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:5535) @ android.widget.linearlayout.measurechildbeforelayout(linearlayout.java:1436) @ android.widget.linearlayout.measurevertical(linearlayout.java:722) @ android.widget.linearlayout.onmeasure(linearlayout.java:613) @ android.view.view.measure(view.java:17547) @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:5535) @ android.widget.framelayout.onmeasure(framelayout.java:436) @ android.view.view.measure(view.java:17547) @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:5535) @ android.widget.linearlayout.measurechildbeforelayout(linearlayout.java:1436) @ android.widget.linearlayout.measurevertical(linearlayout.java:722) @ android.widget.linearlayout.onmeasure(linearlayout.java:613) @ android.view.view.measure(view.java:17547) @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:5535) @ android.widget.framelayout.onmeasure(framelayout.java:436) @ com.android.internal.policy.impl.phonewindow$decorview.onmeasure(phonewindow.java:2615) @ android.view.view.measure(view.java:17547) @ android.view.viewrootimpl.performmeasure(viewrootimpl.java:2015) @ android.view.viewrootimpl.measurehierarchy(viewrootimpl.java:1173) @ android.view.viewrootimpl.performtraversals(viewrootimpl.java:1379) @ android.view.viewrootimpl.dotraversal(viewrootimpl.java:1061) @ android.view.viewrootimpl$traversalrunnable.run(viewrootimpl.java:5885) @ android.view.choreographer$callbackrecord.run(choreographer.java:767) @ android.view.choreographer.docallbacks(choreographer.java:580) @ android.view.choreographer.doframe(choreographer.java:550) @ android.view.choreographer$framedisplayeventreceiver.run(choreographer.java:753) @ android.os.handler.handlecallback(handler.java:739) @ android.os.handler.dispatchmessage(handler.java:95) @ android.os.looper.loop(looper.java:135) @ android.app.activitythread.main(activitythread.java:5254) @ java.lang.reflect.method.invoke(native method) @ java.lang.reflect.method.invoke(method.java:372) @ com.android.internal.o
you should initialize toggle button in oncreateview method this:
view view; @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view = inflater.inflate(r.layout.account_view_details_fragment, container, false); togglebutton = (togglebutton)view.findviewbyid(r.id.togglebuttontest); return view; }
Comments
Post a Comment