Android ProgressDialog Voorbeeld

Welkom bij het Android ProgressDialog-voorbeeld. In deze tutorial zullen we leren hoe we een Android Progress Dialog kunnen maken met een ProgressBar. Ook zullen we uitgebreid ingaan op het verschil tussen een ProgressDialog en een ProgressBar.

Android ProgressDialog

Android ProgressDialog is een uitbreiding van AlertDialog. Voor meer informatie over een AlertDialog, bekijk de tutorial hier. Android ProgressDialog is een dialoogvenster/venster dat de voortgang van een taak laat zien. Android Progress Dialog is bijna hetzelfde als ProgressBar, met als enige verschil dat dit als een dialoogvenster wordt weergegeven. Om een ProgressDialog te maken voor het tonen van een ProgressBar moeten we het als volgt instantiëren.

ProgressDialog progress = new ProgressDialog(this);

Verschil tussen Android ProgressDialog en ProgressBar

  1. ProgressBar is een View (zoals TextView, ImageView, Button, enz.), die in de layout kan worden gebruikt om de voortgang weer te geven. Een ProgressBar wordt gebruikt om aan te geven dat er nog steeds iets in de app wordt geladen terwijl de gebruiker nog steeds kan interacteren met andere delen.
  2. ProgressDialog is een dialoogvenster met een ingebouwde voortgangsbalk. Een ProgressDialog wordt gebruikt wanneer we willen voorkomen dat de gebruiker met de toepassing kan interageren terwijl hij wacht. Het dialoogaspect bevriest de gebruiker en staat geen interactie toe totdat het wordt gesloten

Android ProgressDialog-attributen

Enkele belangrijke attributen van Android ProgressDialog worden hieronder gegeven.

  1. setMessage(): Deze methode wordt gebruikt om een bericht aan de gebruiker te tonen. Voorbeeld: Laden…
  2. setTitle(): Deze methode wordt gebruikt om een titel aan het dialoogvenster toe te voegen
  3. setProgressStyle(ProgressDialog.STYLE_HORIZONTAL): Deze methode wordt gebruikt om de horizontale voortgangsbalk in het dialoogvenster weer te geven
  4. setProgressStyle(ProgressDialog.STYLE_SPINNER): Deze methode wordt gebruikt om de cirkel/ronddraaiende voortgangsbalk in het dialoogvenster weer te geven
  5. setMax(): Deze methode wordt gebruikt om de maximale waarde in te stellen
  6. getProgress(): Deze methode wordt gebruikt om de huidige voortgangswaarde in nummers op te halen
  7. getMax(): Deze methode retourneert de maximale waarde van de voortgang
  8. show(Context context, CharSequence title, CharSequence message): Dit is een statische methode die wordt gebruikt om het voortgangsvenster weer te geven
  9. incrementProgressBy(int diff) : Deze methode verhoogt de voortgangsbalk met het verschil van de meegegeven waarde als parameter

In deze tutorial ontwikkelen we een toepassing die een ProgressDialog weergeeft met een horizontale ProgressBar die elke 200 milliseconden wordt verhoogd.

Android ProgressDialog Projectstructuur

Android ProgressDialog Voorbeeld

Het bestand activity_main.xml bevat een knop die bij klikken een ProgressDialog oproept, zoals weergegeven in de xml-code hieronder: 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>

Het bestand MainActivity.java is hieronder gegeven. 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);
                }
            };
        });
    }
}

De volgende code activeert de handler waarin we de code schrijven om de voortgangsbalk te verhogen.

handle.sendMessage(handle.obtainMessage());

Hier is de uitvoervideo wanneer je de voorbeeldtoepassing voor Android-voortgangsvenster uitvoert in de Android-emulator. Hiermee eindigt de zelfstudie over het voorbeeld van Android ProgressDialog. Je kunt het definitieve Android ProgressDialog-project downloaden via de onderstaande link.

Download Android ProgressDialog Project

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