0

現在、1つのタブ内に2つのアクティビティがあります。2番目のアクティビティでは、カスタムリストとカスタムがありますspinner。スピナーのデータとlistviewサーバーから受信されます...それは問題なく動作します。したがって、2番目のアクティビティでをクリックするspinnerと、アプリがクラッシュし、次のように表示されlogcatます。

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は私の最初の問題を解決し、アクティビティグループ内のカスタムリストのスピナーの問題は何も与えませんでした。

ビューとスピナー、およびカスタムアダプターを設定する方法は次のとおりです。

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

1 に答える 1

0

これNullPointerExceptionは、カスタムアダプターからのものMySpinnerではなく、コード内の別の場所にある別の単純なものからのArrayAdapterものです。あなたが提供するデータにArrayAdapternull値があり、それがおそらくをスローするものNullPointerExceptionです。渡すデータを確認し、そこから値を削除しnullます。

于 2012-08-13T09:29:28.287 に答える