android - Spinners and problems with Context? -
i'm working on fragment class next:
public class demandfragment extends fragment implements locationlistener{...
i have declared this:
spinner spinner_loc; arrayadapter<string> spinner_loc_adapter = null; @override public void onactivitycreated(bundle state){ super.onactivitycreated(state); bundle bundle = this.getarguments(); source_category = integer.parseint(bundle.getstring("category")); preparespinner(); ...
and have next function it's called onactivitycreated method (to modularize code):
private void preparespinner(){ spinner_loc = (spinner) getview().findviewbyid(r.id.spinner_loc); ...
and further... inside of preparespinner() method.
spinner_loc = null; spinner_loc_adapter = null; spinner_loc_adapter = new arrayadapter<string>(getactivity(), r.layout.spinner_content, values); spinner_loc.setadapter(spinner_loc_adapter); spinner_loc_adapter.notifydatasetchanged();
value array of strings.
problem: i'm getting null pointer exception on spinner_loc_adapter. belive error context, can not figure out why.
what context must in: fragment_class -> oncreate() -> preparespinner() ??
i've tried context _c in declaration, , passing adapter in place of getactivity(), i'm getting same error.
logcat
03-24 12:51:46.605 12785-12785/com.test e/androidruntime﹕ fatal exception: main java.lang.nullpointerexception @ com.test.fragment.demandfragment.preparespinner(demandfragment.java:330) @ com.test.fragment.demandfragment.onactivitycreated(demandfragment.java:95) @ android.support.v4.app.fragment.performactivitycreated(fragment.java:1508) @ android.support.v4.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:947) @ android.support.v4.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:1104) @ android.support.v4.app.backstackrecord.run(backstackrecord.java:682) @ android.support.v4.app.fragmentmanagerimpl.execpendingactions(fragmentmanager.java:1467) @ android.support.v4.app.fragmentmanagerimpl$1.run(fragmentmanager.java:440) @ android.os.handler.handlecallback(handler.java) @ android.os.handler.dispatchmessage(handler.java) @ android.os.looper.loop(looper.java) @ android.app.activitythread.main(activitythread.java) @ java.lang.reflect.method.invokenative(native method) @ java.lang.reflect.method.invoke(method.java) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java) @ com.android.internal.os.zygoteinit.main(zygoteinit.java) @ de.robv.android.xposed.xposedbridge.main(xposedbridge.java:132) @ dalvik.system.nativestart.main(native method)
xml:
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/fragment_content" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:background="@android:color/white"> <scrollview android:layout_weight="0.9" android:layout_width="fill_parent" android:layout_height="wrap_content" android:overscrollmode="never" android:scrollbars="none"> <linearlayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical"> <linearlayout android:id="@+id/layout_select" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:background="#1794d4" android:alpha="0.9" android:layout_marginleft="30dp" android:layout_marginright="30dp"> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:textcolor="@android:color/white" android:text="@string/offer_location" android:textsize="18sp" android:layout_margintop="20dp" android:layout_marginleft="15dp" android:id="@+id/offer_location" /> <spinner android:id="@+id/spinner_location" android:layout_width="fill_parent" android:layout_height="30dp" android:layout_marginleft="15dp" android:layout_marginright="15dp" android:layout_margintop="15dp" android:gravity="center_vertical" android:background="@drawable/spinner_button" android:headerdividersenabled="false" android:footerdividersenabled="false" android:divider="@drawable/spinner_button" /> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:textcolor="@android:color/white" android:text="@string/choose_brand_model" android:textsize="18sp" android:layout_margintop="20dp" android:layout_marginleft="15dp" android:textisselectable="false" /> <spinner android:id="@+id/spiner_marca" android:layout_width="fill_parent" android:layout_height="30dp" android:layout_marginleft="15dp" android:layout_marginright="15dp" android:layout_margintop="15dp" android:gravity="center_vertical" android:background="@drawable/spinner_button" android:headerdividersenabled="false" android:footerdividersenabled="false" android:divider="@drawable/spinner_button" /> <spinner android:id="@+id/spiner_modelo" android:layout_width="fill_parent" android:layout_height="30dp" android:layout_marginleft="15dp" android:layout_marginright="15dp" android:layout_margintop="10dp" android:gravity="center_vertical" android:background="@drawable/spinner_button" android:headerdividersenabled="false" android:footerdividersenabled="false" android:divider="@drawable/spinner_button" /> <button android:id="@+id/bt_disable_spinner" android:layout_width="fill_parent" android:layout_height="20dp" android:layout_marginleft="15dp" android:layout_marginright="15dp" android:layout_margintop="15dp" android:layout_marginbottom="15dp" android:gravity="center" android:textcolor="@drawable/dark_blue_text_button" android:text="@string/brand_not_sure" android:textsize="10sp" android:background="@drawable/dark_blue_border_button"/> </linearlayout> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:textcolor="#cccccc" android:text="@string/wanted" android:layout_below="@id/layout_select" android:layout_marginleft="30dp" android:layout_margintop="10dp"/> <linearlayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center_horizontal" android:id="@+id/layout_options"> <imagebutton android:id="@+id/bt_add_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginright="50dp" android:background="@android:color/transparent" android:src="@drawable/ic_add_text"/> <imagebutton android:id="@+id/bt_add_photo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginright="40dp" android:background="@android:color/transparent" android:src="@drawable/ic_add_photo"/> <imagebutton android:id="@+id/bt_add_audio" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@android:color/transparent" android:src="@drawable/ic_add_audio"/> </linearlayout> <linearlayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center_horizontal" android:layout_margintop="20dp" android:layout_marginbottom="20dp" android:id="@+id/layout_type"> <button android:id="@+id/bt_nuevo" android:layout_width="90dp" android:layout_height="20dp" android:textcolor="@drawable/gray_text_button" android:text="@string/demand_new" android:textsize="10sp" android:layout_marginright="10dp" android:background="@drawable/gray_border_button"/> <button android:id="@+id/bt_km0" android:layout_width="90dp" android:layout_height="20dp" android:textcolor="@drawable/gray_text_button" android:text="@string/demand_km0" android:textsize="10sp" android:layout_marginright="10dp" android:background="@drawable/gray_border_button"/> <button android:id="@+id/bt_2mano" android:layout_width="90dp" android:layout_height="20dp" android:textcolor="@drawable/gray_text_button" android:text="@string/demand_used" android:textsize="10sp" android:background="@drawable/gray_border_button"/> </linearlayout> </linearlayout> </scrollview> <imageview android:layout_width="match_parent" android:layout_height="40dp" android:id="@+id/imageviewsend" android:src="@drawable/bt_enviar_solicitud" android:layout_gravity="center|bottom" android:layout_margintop="10dp" android:background="#1794d4" android:paddingleft="80dp" android:paddingright="80dp" android:layout_weight="0.1" android:layout_alignparentbottom="true" /> </linearlayout>
use bewlow in onactivtiycreated
of fragment. spinner_loc
null coz getview()
returns null. need wait till activity created , fragment attached activity
spinner_loc = (spinner) getview().findviewbyid(r.id.spinner_loc); spinner_loc_adapter = new arrayadapter<string>(getactivity(), r.layout.spinner_content, values); spinner_loc.setadapter(spinner_loc_adapter); spinner_loc_adapter.notifydatasetchanged();
edit:
<spinner android:id="@+id/spinner_location"
change
spinner_loc = (spinner) getview().findviewbyid(r.id.spinner_loc);
to
spinner_loc = (spinner) getview().findviewbyid(r.id.spinner_location);
Comments
Post a Comment