Dialogue d'attente

 

Il s'agit ici de d'afficher qu'un traitement long et de durée indéterminée est lancé.

 

Construire simplement la dialogue d'attente

Pour créer une dialogue d'attente, rien de plus simple, il suffit d'utiliser la classe ProgressDialog

ProgressDialog dialogWait;

dialogWait = ProgressDialog.show(this, "Long traitement en cours", "Patientez S.V.P...”, true);

ou

dialogWait = ProgressDialog.show(this, "Long traitement en cours", "Patientez S.V.P...”, true, true);

Le premier paramètre est le contexte,

Le second, le titre à mettre dans la dialogue

Le troisième est un message à l'intention de l'utilisateur.

Le quatrième est un booléen qui précise le type de Progress Bar (True pour taux indéterminé, false pour déterminé)

Le cinquième booléen pour indiquer que le traitement peut être abandonné ou non.

 

La dialogue est de type modal et bloque par consequent toutes opérations entre l'utilisateur et l'interface jusqu'à ce que celle-ci disparaisse.

 

Image non trouvée !Concernant les dialogues d'attente ou de progression:

Et c'est en fait le plus difficile...

L'UI Thread ne doit en aucun cas effectuer de traitements longs (Sinon: risque d'ANR:Application Not Responding) ! Il devra par contre gérer l'affichage de la dialogue d'attente ou de progression (c'est le seul thread qui peut le faire - d'où son nom UI Thread !). Donc l'utilisation de Threads est obligatoire pour les traitements longs et la communication entre thread et thread UI devra être mise en place pour permettre une maj de l'UI ! (cf. chapitre sur les Threads pour plus d'informations).

 

 

Exemple

Voici un exemple...

 

Construction détaillée de la dialogue d'attente

Il sera possible d'utiliser des méthodes individuelles pour construire votre dialogue d'attente:

progressDialog = new ProgressDialog(this);
// Pour indiquer le style d'affichage de la dialogue:
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
// Positionner un titre
progressDialog.setTitle("Loading...");
// Puis le message
progressDialog.setMessage("Loading application View, please wait...");
// Ici, nous indiquons que la dialogue peut être fermé ou non
progressDialog.setCancelable(false);
// Qu'elle est indéterminé (ou non)
progressDialog.setIndeterminate(false);

// Et enfin l'affichage !
progressDialog.show();

 

Image non trouvée !Ou vous pouvez le poser directement via l'outil gaphique. Dans ce cas, utilisez findViewById pour trouver votre Dialogue d'attente