ProgressDialog : comment savoir quand la ListView est chargée ?
Bonjour,
Dans mon appli Android, l'ACTIVITY A appelle l'ACTIVITY B.
L'ACTIVITY B affiche une ListView, en fonction d'un critère sélectionné dans la l'ACTIVITY A.
La ListView affiche des données qui proviennent d'une BD Sqlite embarquée.
Et je souhaiterai donc afficher une progressDialog à l'ouverture de l'ACTIVITY B, le temps du chargement des données qui proviennent de la BD embarquée.
J'ai trouvé des tutoriaux intéressants qui me mettent sur la voie.
Mais je n'en ai pas trouvé qui m'indique comment voir où en est le chargement des données qui proviennent de la BD.
J'ai le code ci dessous sous la main, mais j'imagine qu'il faudrait que je remplace le sleep(5000) par le chargement de mes données .... mais savez vous comment faire ?
Merci par avance pour ceux qui pourront m'aider.
Code:
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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| private void traitementDesDonneesAvecPourcentage() {
// On ajoute un message à notre progress dialog
progressDialog.setMessage("Chargement en cours");
// On donne un titre à notre progress dialog
progressDialog.setTitle("Mon chargement");
// On spécifie le style
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
// On spécifie le maximum
progressDialog.setMax(10);
// On affiche notre message
progressDialog.show();
new Thread(new Runnable() {
@Override
public void run() {
// Boucle de 1 a 10
for (int i = 0; i < 10; i++) {
try {
// Attends 500 millisecondes
Thread.sleep(500);
// On change la valeur de la progression
progressDialog.setProgress(i+1);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
handler.sendEmptyMessage(0);
// A la fin du traitement, on fait disparaitre notre message
progressDialog.dismiss();
}
}).start();
}
private void traitementDesDonnees() {
// On ajoute un message à notre progress dialog
progressDialog.setMessage("Chargement en cours");
// On affiche notre message
progressDialog.show();
new Thread(new Runnable() {
@Override
public void run() {
// Boucle de 1 a 10
for (int i = 0; i < 10; i++) {
try {
// Attends 500 millisecondes
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
handler.sendEmptyMessage(0);
// A la fin du traitement, on fait disparaitre notre message
progressDialog.dismiss();
}
}).start();
}
private Handler handler = new Handler() {
public void handleMessage(android.os.Message msg) {
if(msg.what == 0) {
monBouton.setText("C'est bon");
}
};
}; |