J'essaie de créer un ProgressDialog pour une application Android (juste un simple montrant l'utilisateur que les choses se passent, pas de boutons ou quoi que ce soit) mais je ne peux pas le faire correctement. J'ai été à travers des forums et des tutoriels ainsi que le Sample-Code qui vient avec le SDK, mais en vain.Android: ProgressDialog ne montre pas
C'est ce que je suis:
btnSubmit.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
(...)
ProgressDialog pd = new ProgressDialog(MyApp.this);
pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pd.setMessage("Working...");
pd.setIndeterminate(true);
pd.setCancelable(false);
// now fetch the results
(...long time calculations here...)
// remove progress dialog
pd.dismiss();
J'ai aussi essayé d'ajouter pd.show();
et foiré autour avec le paramètre new ProgressDialog
résultant en rien du tout (à l'exception des erreurs que le paramètre choisi ne fonctionnera pas), ce qui signifie: le ProgressDialog ne s'affichera jamais. L'application continue de fonctionner comme si je n'avais jamais ajouté la boîte de dialogue.
Je ne sais pas si je crée le dialogue au bon endroit, je l'ai déplacé un peu mais cela, aussi, n'a pas aidé. Peut-être que je suis dans le mauvais contexte? Le code ci-dessus est à l'intérieur private ViewGroup _createInputForm()
dans MyApp
.
Tout indice est apprécié,
J'ai reconstruit avoir de mon application pour y arriver :) Les tutoriels que j'ai lus sonnaient comme c'était possible sans un autre fil, mais vous n'arrêtez jamais d'apprendre. Je n'ai pas complètement fini: maintenant le ProgressDialog ne montre pas où il devrait (au moins ça se voit!), Mais juste "clignote" juste avant que les résultats arrivent, mais maintenant je pense que je peux faire le reste tout seul;) Merci beaucoup pour votre aide! – Select0r
Juste pour compléter ceci, au cas où quelqu'un serait intéressé: le "clignotant" du ProgressDialog est quelque chose qui n'arrive que dans l'émulateur, il ne se produit pas sur le périphérique réel. Il semble que l'émulateur prenne des centaines de secondes avant que la requête (onClick) ne soit traitée et que l'application se bloque jusqu'à ce que cela arrive. Sur l'appareil, tout va bien. – Select0r
pourquoi n'utilisons-nous pas pd = new ProgressDialog (this); pd.show() ;? – Emerald214