Currently I have two activitys inside one tab. In second activity I have custom list and custom spinner. The data for the spinner and listview is received from server…. That works OK. so when I click on the spinner in my second activity the app crashes and the logcat says:
08-13 11:54:55.908: E/AndroidRuntime(13555): java.lang.NullPointerException
08-13 11:54:55.908: E/AndroidRuntime(13555): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:355)
08-13 11:54:55.908: E/AndroidRuntime(13555): at android.widget.ArrayAdapter.getDropDownView(ArrayAdapter.java:376)
08-13 11:54:55.908: E/AndroidRuntime(13555): at android.widget.Spinner$DropDownAdapter.getDropDownView(Spinner.java:332)
08-13 11:54:55.908: E/AndroidRuntime(13555): at android.widget.Spinner$DropDownAdapter.getView(Spinner.java:328)
08-13 11:54:55.908: E/AndroidRuntime(13555): at android.widget.AbsListView.obtainView(AbsListView.java:1474)
08-13 11:54:55.908: E/AndroidRuntime(13555): at android.widget.ListView.measureHeightOfChildren(ListView.java:1216)
08-13 11:54:55.908: E/AndroidRuntime(13555): at android.widget.ListView.onMeasure(ListView.java:1127)
08-13 11:54:55.908: E/AndroidRuntime(13555): at android.view.View.measure(View.java:8335)
08-13 11:54:55.908: E/AndroidRuntime(13555): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
08-13 11:54:55.908: E/AndroidRuntime(13555): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017)
08-13 11:54:55.908: E/AndroidRuntime(13555): at android.widget.LinearLayout.measureVertical(LinearLayout.java:386)
08-13 11:54:55.908: E/AndroidRuntime(13555): at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
08-13 11:54:55.908: E/AndroidRuntime(13555): at android.view.View.measure(View.java:8335)
08-13 11:54:55.908: E/AndroidRuntime(13555): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
08-13 11:54:55.908: E/AndroidRuntime(13555): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017)
08-13 11:54:55.908: E/AndroidRuntime(13555): at android.widget.LinearLayout.measureVertical(LinearLayout.java:386)
08-13 11:54:55.908: E/AndroidRuntime(13555): at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
08-13 11:54:55.908: E/AndroidRuntime(13555): at com.android.internal.widget.WeightedLinearLayout.onMeasure(WeightedLinearLayout.java:60)
08-13 11:54:55.908: E/AndroidRuntime(13555): at android.view.View.measure(View.java:8335)
08-13 11:54:55.908: E/AndroidRuntime(13555): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
08-13 11:54:55.908: E/AndroidRuntime(13555): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
08-13 11:54:55.908: E/AndroidRuntime(13555): at android.view.View.measure(View.java:8335)
08-13 11:54:55.908: E/AndroidRuntime(13555): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
08-13 11:54:55.908: E/AndroidRuntime(13555): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
08-13 11:54:55.908: E/AndroidRuntime(13555): at android.view.View.measure(View.java:8335)
08-13 11:54:55.908: E/AndroidRuntime(13555): at android.view.ViewRoot.performTraversals(ViewRoot.java:843)
08-13 11:54:55.908: E/AndroidRuntime(13555): at android.view.ViewRoot.handleMessage(ViewRoot.java:1892)
08-13 11:54:55.908: E/AndroidRuntime(13555): at android.os.Handler.dispatchMessage(Handler.java:99)
08-13 11:54:55.908: E/AndroidRuntime(13555): at android.os.Looper.loop(Looper.java:130)
08-13 11:54:55.908: E/AndroidRuntime(13555): at android.app.ActivityThread.main(ActivityThread.java:3835)
08-13 11:54:55.908: E/AndroidRuntime(13555): at java.lang.reflect.Method.invokeNative(Native Method)
08-13 11:54:55.908: E/AndroidRuntime(13555): at java.lang.reflect.Method.invoke(Method.java:507)
08-13 11:54:55.908: E/AndroidRuntime(13555): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864)
08-13 11:54:55.908: E/AndroidRuntime(13555): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
08-13 11:54:55.908: E/AndroidRuntime(13555): at dalvik.system.NativeStart.main(Native Method)
I have been looking at these posts -> Android :WindowManager$BadTockenException on Spinner Click that solved my first issue and Problem with spinner in custom list inside activity group that gave me nothing.
So here’s how I set views and spinner and my custom adapter:
View viewToLoad = LayoutInflater.from(this.getParent()).inflate(R.layout.atlaides, null);
this.setContentView(viewToLoad);
//setContentView(R.layout.atlaides);
sp = (Spinner) viewToLoad.findViewById(R.id.spinner1);
MySpiner sxspin = new MySpiner(this.getParent(), R.layout.c_spinner, android.R.id.text1, categories);
sxspin.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
this.sp.setAdapter(sxspin);
and my custom spinner adapter looks like this:
private class MySpiner extends ArrayAdapter<String>{
public MySpiner(Context context, int resource, int textViewResourceId,
List<String> objects) {
super(context, resource, textViewResourceId, objects);
// TODO Auto-generated constructor stub
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
LayoutInflater pieputejs = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = pieputejs.inflate(R.layout.c_spinner, parent,false);
TextView text = (TextView)view.findViewById(R.id.textView1);
text.setText(categories.get(position));
//text.setTextColor(Color.GRAY);
//text.setShadowLayer(2.5f, 2, 2, Color.WHITE);
//text.setGravity(TextView.FOCUS_LEFT);
return view;
}
}
That
NullPointerExceptiondoesn’t come from the custom adapterMySpinnerit comes from another simpleArrayAdapterthat you have somewhere else in your code. In the data that you supply to thatArrayAdapteryou havenullvalues and that is what most likely throws theNullPointerException. See what data you pass and remove thenullvalues from it.