Android: Spinner Progress Dialog ne tourne pas
Ce qui semble être un Androïde à l'échelle de problème, vous pouvez le voir dans l'API démos en vertu de points de Vue -> Barre de Progression -> boîtes de dialogue.
En gros, si vous affichez une boîte de dialogue de progression, il fonctionne comme prévu la première fois autour. Si vous le rejeter et de le montrer à nouveau (sans détruire l'activité ou quelque chose comme ça), le fait de tourner l'image s'arrête de tourner. Dans l'API de Démonstration vous pouvez le voir en cliquant sur "Indéterminée", appuyez sur retour pour fermer la boîte de dialogue, puis cliquez sur le bouton nouveau.
J'ai essayé de construire mon propre boîte de dialogue de progression, mais il montre le même problème, que le problème est avec le "ProgressBar" spinning image.
Je me demande si quelqu'un a une solution pour ce problème.
source d'informationauteur Martin
Vous devez vous connecter pour publier un commentaire.
Si vous renvoyez un
Dialog
vous ne devez pas montrer la même instance de nouveau. Soit en créer une nouvelle, ou de l'utilisationhide()
au lieu dedismiss()
. Lors de l'utilisation dehide()
vous avez encore àdismiss()
lorsqu'ils ne sont plus nécessaires.Je cherchais la même réponse, cependant aucune des réponses ici a fonctionné pour moi parce que je voulais utiliser la boîte de dialogue méthodes comme
Activity.showDialog()
donc je n'ai pas eu à gérer moi-même et aussi pour qu'ils seraient automatiquement recréé sur une rotation.Comme certains des autres réponses dit, si les rejeter() est appelée sur un
ProgressDialog
il cesse de tourner.Activity.onCreateDialog()
enregistre une référence pour le dialogue, et donc une fois qu'il est créé, il ne sera pas recréé sur la prochaineActivity.showDialog()
appel. Il suffit d'appelerActivity.onPrepareDialog()
et utiliser l'instance, il avait déjà. Si il a été rejeté, il n'y aura pas de spin, lorsqu'il est démontré à nouveau.Vous pouvez le forcer à recréer lui-même si vous appelez
Activity.removeDialog()
avec leProgressDialog
's id au lieu d'appelerDialog.dismiss()
. Ce sera rejetée et supprimez également référence alors quandActivity.onShowDialog()
est appelé ensuite, il va utiliserActivity.onCreateDialog()
au lieu de seulementActivity.onPrepareDialog()
et de créer une nouvelle marque (et de la filature) de l'instance.Assurez-vous que si vous avez un
ProgressDialog
qui peut être rejeté ou annulé, vous avez défini un auditeur de sorte que vous pouvez appelerActivity.removeDialog()
. Sinon il va être démis de ses fonctions. Vous pouvez aussi appeler avant de vous appelerActivity.showDialog()
.Espère que ça aide quelqu'un.
Vous n'avez pas à utiliser
onCreateDialog
pourProgressDialog
objets, comme expliqué ici http://developer.android.com/guide/topics/ui/dialogs.html#ProgressDialog . Vous devez créer et afficher la boîte de dialogue de progression dans le code principal au lieu d'utilisershowDialog
etonCreateDialog
.Vous pouvez déclarer une
ProgressDialog
instance de votre Activité et de remplaceronCreateDialog(int)
. Alors au lieu de faire un appel àshowDialog(int)
il vous suffit d'attribuer votre instance deProgressDialog
l'appel àonCreateDialog(int)
où vous allez appelerdialog.show()
.Vous pouvez définir la classe et de mettre en œuvre les AsyncTask.Il y vous de définir vos processus d'arrière-plan dans le doinbackground() la méthode de ce genre.
Vous pouvez également afficher vos informations de progression par la onProgressUpdate() la méthode.Vérifier complet facile de suivre le tutoriel à http://www.androidcookers.co.cc/2011/12/want-to-run-progress-dialog-in-android.html