J'ai le code de certains code (méthode complète incluse à la fin), qui comprend une boîte de dialogue de progression. Le problème est que la boîte de dialogue de progression ne présente aucun progrès (il ne passe pas de 0 à 100), il reste à zéro sans mouvement tant que le code n'est pas terminé, puis il disparaît. Il apparaît donc au bon moment et est rejeté au bon moment, mais cela ne montre pas les progrès entre les deux.
Voici la section où j'essaie d'incrémenter la boîte de dialogue. La variable d'intégration fonctionne, je peux la voir incrémenter de 0 à 100 dans le journal, alors pourquoi ne pas montrer que dans la boîte de dialogue de progrès? P> méthode complète ici: p>
3 Réponses :
Je pense qu'il est manquant de fil de thread // est utilisé pour modifier la valeur de progression
Thread thread = new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } setProgressValue(progress + 1); } }); thread.start();
Au fait, il y a une bibliothèque tierce partie github.com/daimajia/numberprogressbar
J'ai essayé cela et ça ne fonctionnait pas. Je l'ai placé dans la méthode où j'essaie actuellement de mettre à jour la boîte de dialogue de progrès. Est-ce exact?
Cette solution est tout simplement fausse. Ne mettez jamais à jour l'interface utilisateur d'un fil non UI. Voir ma réponse pour la bonne façon d'utiliser le fil de l'interface utilisateur.
Merci David, je suis d'accord que votre solution semble logique, cependant, étant un débutant, je ne sais pas comment la mettre en œuvre. J'ai posté une réponse à votre réponse demandant un peu plus de conseils. Merci
Pourquoi ne pas appeler une fonction pour faire une chose
Un problème possible pourrait être que vous mettez à jour la barre de progression d'un fil non intermédiaire.
Vous pouvez essayer de déplacer le (en supposant que vos méthodes sont à l'intérieur d'une activité) p> setprogress code> dans le fil de l'interface utilisateur:
Bonjour, je pense que c'est quelque chose à voir avec le fil, je dois admettre que je suis un débutant relatif et ne comprends pas complètement lorsque je devrais utiliser différents threads. Malheureusement, mon code est dans une classe distincte, mais je passe l'activité dans la variable de contexte. Est-ce que j'y pouvais utiliser cette variable pour fonctionner sur un fil d'interface utilisateur?