IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Création d'une ProgressBar loader


Sujet :

Android

  1. #1
    Membre confirmé
    Homme Profil pro
    Cisco
    Inscrit en
    Juillet 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Cisco
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 71
    Par défaut Création d'une ProgressBar loader
    Bonjour,

    j'ai une tache Asynchrone qui prend un context (merci de ne pas me souligner la perte de performance du fait que la classe ne soit pas nested ^^):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    public class DownloadDataPromotions extends AsyncTask<Void, Integer, ArrayList<HashMap<String, String>>>
        {
        	Context context;
     
        	public DownloadDataPromotions(Context context) 
        	{
        		this.context = context;
        	}
        	@Override
            protected void onPreExecute() 
            {
                super.onPreExecute();
            }
     
        	@Override
        	protected ArrayList<HashMap<String, String>> doInBackground(Void... params)
        	{
                        ArrayList<HashMap<String, String>> promoList = new ArrayList<HashMap<String, String>>();
        		promoList = DownloadingDataFromWebService();
                              ...
                        return promoList;
        	}
     
        	@Override
        	protected void onProgressUpdate(Integer... values) 
        	{
     
        		super.onProgressUpdate(values);
        	}
     
        	@Override
            protected void onPostExecute(ArrayList<HashMap<String, String>> promoList) 
            {
                super.onPostExecute(promoList);
                         ...
            }
        }
    Puis j'appel ma tache ascynchrone dans le but d'afficher toutes mes donnees recues par mon WebService dans une ListActivity qui contient un bouton Refresh qui rappel cette tache asynchrone.

    Mais le soucis auquel je me pose est d'inserer a cette Liste (en plus de mon bouton refresh et de mes items) une petite progressBar undeterminate qui s'affichera juste en dessous de mon bouton refresh lorsque que ma tache asynchrone sera appelee.

    J'ai pense donc a l'integration directement dans la tache asynchrone dans le onPreExecute la lancer et dans le postExecute la dismiss.. mais je ne vois vraiment pas comment le faire..

    Donc poru quel choix opte ? Sachant que j'ai un Drawable qui peut me l'afficher de maniere custom..

    J'ai essaye d'ajouter ceci a l'evenement OnClick du bouton refresh dans ma ListActivity:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ProgressBar pb = new ProgressBar(TabPromotionsJSONParsingActivity.this);
            		LinearLayout ll = (LinearLayout) findViewById(R.id.linearlayoutProgressBar);
            		ll.addView(pb);
            		pb.setVisibility(View.VISIBLE);
    Cela affiche bien la progressBar loader mais biensure comme je ne fais pas de
    View.Gone celle ci ne s'arrete pas..
    j'ai essayer de la placer dans un thread mais cela me retourne une erreur car on ne peut rien ajouter a la vue principale a partir d'un autre thread..

    Quelqu'un?

    J'aimerais trouve le moyen de gerer l'affichage dans mon AsyncTask ou sinon trouver un moyen d'afficher pendant un certain moment ma progressBar dans ma ListActivity.

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 89
    Par défaut
    Salut,

    je pense que tu peux modifier ce qu'il te faut dans la fonction onProgressUpdate(), qui est exécutée dans le thread de l'UI
    Elle est appelée à chaque fois que tu fais un publishProgress () depuis la fonction qui tourne en fond (dans doInBackground() ).

  3. #3
    Membre confirmé
    Homme Profil pro
    Cisco
    Inscrit en
    Juillet 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Cisco
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 71
    Par défaut
    Probleme resolu!!
    Merci quand meme.
    --> Lien vers ma solution dans la tache asynchrone

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création d'une ProgressBar spéciale
    Par chaosix dans le forum Android
    Réponses: 4
    Dernier message: 25/11/2013, 08h46
  2. création d'une progressBar infinie
    Par robocop2776 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 25/01/2007, 13h44
  3. Réponses: 1
    Dernier message: 16/10/2006, 15h19
  4. comment programmer une progressbar
    Par Choucas dans le forum Paradox
    Réponses: 3
    Dernier message: 13/11/2002, 11h07
  5. [BES] Création d'une variable d'environnement
    Par NGI80 dans le forum Autres
    Réponses: 2
    Dernier message: 17/10/2002, 07h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo