2011-08-14 6 views
0

J'ai déclaré un simple ProgressDialog dans mon application Android, mais il ne s'affiche pas. Voici mon instanciation:ProgressDialog ne montre pas

ProgressDialog pDialog = new ProgressDialog(MyActivity.this, ProgressDialog.STYLE_SPINNER); 
pDialog.setMessage("Logging in..."); 
pDialog.show(); 

Je suis assez nouveau pour le développement Android mais pas Java; Est-ce que quelqu'un voit quelque chose que je puisse mal faire?

MISE À JOUR
Il est bizarre, dans le bloc qui est censé rejeter la boîte de dialogue, j'ai un commutateur de vue du contenu, et si je commente le renvoi de la boîte de dialogue affichera en fait après que l'interrupteur de contenu. Voici le bloc:

if(writeSuccess){ 
    Toast.makeText(getApplicationContext(), "Login Success!", Toast.LENGTH_SHORT).show(); 
    pDialog.dismiss(); 
    setContentView(R.layout.auth); 
} 
+0

Pouvez-vous montrer utiliser un peu plus de code (comme - où est ce code situé ...)? – MByD

+0

Il est situé dans une méthode d'autorisation 'public' directement sous la classe d'activité principale – nkcmr

+0

L'emplacement géographique ne va pas aider trop :) Est-il en cours d'exécution sur le fil principal? est-ce qu'il tourne en boucle? – MByD

Répondre

1

Cela devrait être comme ça.

ProgressDialog pDialog = ProgressDialog.show(MyActivity.this, "MY Dialog", "Please wait..."); 

Par cette seule ligne également vous aurez un ProgressDialog.

0

Essayez de remplacer MyActivity.this par getApplicationContext(). Si cela ne fonctionne pas, obtenez-vous quelque chose dans votre logcat quand la boîte de dialogue devrait s'ouvrir?

+0

En fait, il déclenche une exception fatale en se référant à mon application via la méthode 'getApplicationContext()'. C'est un 'IllegalStateException' levé en essayant d'afficher le' ProgressDialog' – nkcmr

1

Si ce code ne se trouve pas dans la classe MyActivity, alors MyActivity.this ne peut pas être résolu.

Il faut aussi un bon context pour créer progress dialogs, qui est, si vous essayez de créer une boîte de dialogue avant onCreate a été appelée sur votre activité, votre référence de contexte (MyActivity.this) ne sera pas valide.