Exemple de ProgressDialog Android

Bienvenue dans l’exemple de ProgressDialog Android. Dans ce tutoriel, nous apprendrons comment créer une boîte de dialogue de progression Android contenant une barre de progression. Nous discuterons également en détail de la différence entre un ProgressDialog et une ProgressBar.

ProgressDialog Android

ProgressDialog Android est une extension d’AlertDialog. Pour en savoir plus sur AlertDialog, consultez son tutoriel ici. ProgressDialog Android est une boîte de dialogue/fenêtre de dialogue qui affiche la progression d’une tâche. ProgressDialog Android est presque identique à ProgressBar à l’exception qu’il est affiché sous forme de boîte de dialogue. Pour créer un ProgressDialog afin d’afficher une ProgressBar, nous devons l’instancier comme ceci.

ProgressDialog progress = new ProgressDialog(this);

Différence entre ProgressDialog Android et ProgressBar

  1. ProgressBar est une vue (comme TextView, ImageView, Button, etc…), qui peut être utilisée dans la mise en page pour afficher une certaine progression. Une ProgressBar est utilisée pour indiquer qu’il y a encore un chargement dans l’application alors que l’utilisateur peut toujours interagir avec d’autres parties.
  2. ProgressDialog est un Dialogue avec une ProgressBar ‘intégrée’. Un ProgressDialog est utilisé lorsque nous voulons empêcher l’utilisateur d’interagir avec l’application pendant l’attente. L’aspect du Dialogue bloque l’utilisateur de faire quoi que ce soit jusqu’à ce qu’il soit dismissé.

Attributs du ProgressDialog Android

Quelques attributs importants du ProgressDialog Android sont donnés ci-dessous.

  1. setMessage() : Cette méthode est utilisée pour afficher le message à l’utilisateur. Exemple: Chargement…
  2. setTitle() : Cette méthode est utilisée pour définir un titre à la boîte de dialogue
  3. setProgressStyle(ProgressDialog.STYLE_HORIZONTAL) : Cette méthode est utilisée pour afficher la barre de progression horizontale dans la boîte de dialogue
  4. setProgressStyle(ProgressDialog.STYLE_SPINNER) : Cette méthode est utilisée pour afficher la barre de progression circulaire/tournante dans la boîte de dialogue
  5. setMax() : Cette méthode est utilisée pour définir la valeur maximale
  6. getProgress() : Cette méthode est utilisée pour obtenir la valeur actuelle de la progression en chiffres
  7. getMax() : Cette méthode retourne la valeur maximale de la progression
  8. show(Context context, CharSequence title, CharSequence message) : Il s’agit d’une méthode statique, utilisée pour afficher la boîte de dialogue de progression
  9. incrementProgressBy(int diff) : Cette méthode incrémente la barre de progression par la différence de valeur passée en paramètre

Dans ce tutoriel, nous développerons une application qui affiche une ProgressDialog contenant une barre de progression horizontale qui s’incrémente toutes les 200 millisecondes.

Structure du projet ProgressDialog Android

Exemple de ProgressDialog Android

Le fichier activity_main.xml contient un bouton qui invoque une ProgressDialog lorsqu’il est cliqué, comme indiqué dans le code xml ci-dessous : activity_main.xml

<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=" Start ProgressDialog"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="57dp" />

</RelativeLayout>

Le fichier MainActivity.java est donné ci-dessous. MainActivity.java

package com.journaldev.progressdialog;

import android.app.ProgressDialog;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    Button button;
    ProgressDialog progressDoalog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                progressDoalog = new ProgressDialog(MainActivity.this);
                progressDoalog.setMax(100);
                progressDoalog.setMessage("Its loading....");
                progressDoalog.setTitle("ProgressDialog bar example");
                progressDoalog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                progressDoalog.show();
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        try {
                            while (progressDoalog.getProgress() <= progressDoalog
                                    .getMax()) {
                                Thread.sleep(200);
                                handle.sendMessage(handle.obtainMessage());
                                if (progressDoalog.getProgress() == progressDoalog
                                        .getMax()) {
                                    progressDoalog.dismiss();
                                }
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                }).start();
            }

            Handler handle = new Handler() {
                @Override
                public void handleMessage(Message msg) {
                    super.handleMessage(msg);
                    progressDoalog.incrementProgressBy(1);
                }
            };
        });
    }
}

Le code suivant active le gestionnaire dans lequel nous écrivons le code pour incrémenter la barre de progression.

handle.sendMessage(handle.obtainMessage());

Ci-dessous se trouve la vidéo de sortie lorsque vous exécutez l’exemple d’application de la boîte de dialogue de progression Android dans l’émulateur Android. Cela marque la fin du tutoriel sur l’exemple de ProgressDialog Android. Vous pouvez télécharger le projet final Projet ProgressDialog Android depuis le lien ci-dessous.

Télécharger le Projet ProgressDialog Android

Source:
https://www.digitalocean.com/community/tutorials/android-progressdialog-example