2012-11-30 1 views
3

Salut im essayant de gonfler une vue (B.xml) (qui a spinner dedans) d'un OnPostExecute() d'AsyncTask dans une vue (A.xml) mainActivityImpossible d'ajouter une fenêtre - le jeton null n'est pas pour une application

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

}

il fonctionne très bien pour la version 4.0 et au-dessus

mais pour 2.3.3 im obtenir une erreur

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) 

oui j'ai essayé d'utiliser getApplicationContext(), cela, mais toujours la même erreur

i fait référence

Dialog throwing "Unable to add window — token null is not for an application” with getApplication() as context

Android: ProgressDialog.show() crashes with getApplicationContext

Android 1.6: "android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application"

+0

je reçois une erreur quand je clique sur le spinner –

+0

Avez-vous absolument sûr que vous pouvez utiliser 'ApplicationContext' pour le dessin? Avez-vous essayé d'obtenir l'instance 'LayoutInflater'object via le constructeur statique LayoutInflater.from (context)' (quand 'context' est un contexte de votre activité)? – Evos

+0

oui tout est dans l'extrait i hv donné –

Répondre

5

Ok, essayez utiliser constructo r comme ceci pour vous vi variable: LayoutInflater vi = LayoutInflater.from(YourActivityName.this);

0

Vous pouvez passer seulement LayoutInflater.from (this);

Questions connexes