0

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;
    }       
}
Cœur
  • 37,241
  • 25
  • 195
  • 267
J1and1
  • 920
  • 3
  • 12
  • 25

1 Answers1

0

That NullPointerException doesn't come from the custom adapter MySpinner it comes from another simple ArrayAdapter that you have somewhere else in your code. In the data that you supply to that ArrayAdapter you have null values and that is what most likely throws the NullPointerException. See what data you pass and remove the null values from it.

user
  • 86,916
  • 18
  • 197
  • 190
  • Thank you. When i double checked yes there was an `null` in my categories witch was passed from the first activity. Thank you again. – J1and1 Aug 13 '12 at 09:40