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 ^^):
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.
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); ... } }
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:
Cela affiche bien la progressBar loader mais biensure comme je ne fais pas de
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);
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.
Partager