3

私はアンドロイドに比較的慣れていません。

電話でスピナーをクリックすると、次のエラーがスローされます。

android.view.windowmanager$badtokenexception unable to add window --token null is not for an application

私のコード

List<String> list = new ArrayList<String>();
            list.add("Character");
            list.add("Numeric");
            list.add("Email");
            ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(CreateSteps.this,android.R.layout.simple_spinner_item, list);  

            LinearLayout spinnerHolder = new LinearLayout(getApplicationContext());
            spinnerHolder.setOrientation(LinearLayout.HORIZONTAL);
            spinnerHolder.setLayoutParams(
                    new LinearLayout.LayoutParams(
                        LinearLayout.LayoutParams.MATCH_PARENT, 
                        LinearLayout.LayoutParams.WRAP_CONTENT, 1f));
                final Spinner newSpinner = new Spinner(getApplicationContext());
                allSpns.add(newSpinner);
                newSpinner.setLayoutParams(
                    new Spinner.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, 
                        ViewGroup.LayoutParams.WRAP_CONTENT));
                newSpinner.setAdapter(dataAdapter);

                rAlign.addView(spinnerHolder);
                spinnerHolder.setId(MY_BUTTON);
                MY_BUTTON++;
                spinnerHolder.addView(newSpinner);

Android 2.3を実行している電話にコードを実装しようとしました。

4

1 に答える 1

1

問題はここで、

final Spinner newSpinner = new Spinner(getApplicationContext());

アプリケーション コンテキストを渡す代わりに、アクティビティのコンテキストを渡す必要があります。

final Spinner newSpinner = new Spinner(ActivityName.this);
于 2012-10-05T10:27:32.313 に答える