Невозможно добавить нулевой токен окна не для приложения

hi im пытается раздуть представление (B.xml) (которое имеет spinner в нем) из AsyncTask onPostExecute() в представлении (A.xml) mainActivity

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.3 im получить сообщение об ошибке

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(), но это все равно та же ошибка

i упоминал

Вызов диалогового окна " Невозможно добавить нулевой токен окна не для приложения" с getApplication() как контекст

Android: ProgressDialog.show() вылетает с getApplicationContext

Android 1.6: "android.view.WindowManager $BadTokenException: Невозможно добавить нулевой токен окна не для приложения"

+3
источник поделиться
2 ответа

Хорошо, попробуйте использовать такой конструктор для вас vi variable: LayoutInflater vi = LayoutInflater.from(YourActivityName.this);

+6
источник

Вы можете передать только LayoutInflater.from(this);

0
источник

Связанные вопросы


Похожие вопросы

Посмотрите другие вопросы по меткам или Задайте вопрос