-1
votes

Dialogue de progrès de Android Studio ne montrait pas les progrès?

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? xxx

méthode complète ici: xxx


0 commentaires

3 Réponses :


0
votes

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


4 commentaires

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



0
votes

Pourquoi ne pas appeler une fonction pour faire une chose xxx


0 commentaires

0
votes

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 setprogress dans le fil de l'interface utilisateur:

(en supposant que vos méthodes sont à l'intérieur d'une activité) xxx


1 commentaires

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?