4

こんにちは私はview(A.xml)mainActivityのAsyncTaskのonPostExecute()からview(B.xml)(スピナーが含まれています)を膨らませようとしています

MainActivity.class

protected void onPostExecute(String result) {
        LayoutInflater vi = (LayoutInflater) getApplicationContext()
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View v = vi.inflate(R.layout.B, null);
        branded_spinner = (Spinner) v.findViewById(R.id.Spinner01);

        adapter_branded = new ArrayAdapter<String>(**MainActivity.this**,
                android.R.layout.simple_spinner_item, Branded);
        adapter_branded.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        branded_spinner.setAdapter(adapter_branded);                        
        branded_spinner.setOnItemSelectedListener(**MainActivity.this**);

}

4.0以降では正常に動作します

しかし、2.3.3imの場合はエラーが発生します

11-30 15:28:55.492: E/AndroidRuntime(540): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
11-30 15:28:55.492: E/AndroidRuntime(540):  at android.view.ViewRoot.setView(ViewRoot.java:531)
11-30 15:28:55.492: E/AndroidRuntime(540):  at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
11-30 15:28:55.492: E/AndroidRuntime(540):  at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)

はい、getApplicationContext()を使用しようとしましたが、これでも同じエラーです

紹介しました

getApplication()をコンテキストとして使用して、「ウィンドウを追加できません—トークンnullはアプリケーション用ではありません」というダイアログをスローします

Android:ProgressDialog.show()がgetApplicationContextでクラッシュする

Android 1.6:「android.view.WindowManager $ BadTokenException:ウィンドウを追加できません-トークンnullはアプリケーション用ではありません」

4

2 に答える 2

6

わかりました、vi変数に次のようなコンストラクターを使用してみてください:LayoutInflater vi = LayoutInflater.from(YourActivityName.this);

于 2012-11-30T11:23:03.313 に答える
0

LayoutInflater.from(this); のみを渡すことができます。

于 2013-09-18T09:47:22.487 に答える