2012-08-13 87 views
0

目前我有一個選項卡內的兩個活動。在第二次活動中,我有自定義列表和自定義spinner。微調器和listview的數據是從服務器收到....這工作正常。所以,當我在我的第二個活動點擊spinner應用程序崩潰和logcat說:java.lang.NullPointerException當我點擊自定義spiner(ActivityGroup)

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) 

`

我一直停留在這幾個小時,一直在尋找這些職位 - >Android :WindowManager$BadTockenException on Spinner Click這解決了我的第一個問題,Problem with spinner in custom list inside activity group,沒有給我什麼。

因此,這裏是如何設置的意見和spiner和我的自定義addapter:

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); 

和我的自定義微調適配器看起來是這樣的:

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; 
    }  
}` 

我會很高興,如果你能指出我在正確的方向或幫助我解決這個問題。 謝謝。

回答

0

NullPointerException不是來自自定義適配器MySpinner它來自另一個簡單的ArrayAdapter,你有代碼中的其他地方。在你提供給ArrayAdapter的數據中,你有null值,那就是最有可能拋出NullPointerException的數據。查看通過的數據,並從中刪除null值。

+0

謝謝。當我重複檢查是的時候,我的類別女巫從第一次活動中傳出了一個'null'。再次感謝你。 – J1and1 2012-08-13 09:40:59