Android ProgressDialog Beispiel

Willkommen zum Beispiel für Android ProgressDialog. In diesem Tutorial lernen wir, wie man einen Android Fortschrittsdialog erstellt, der eine Fortschrittsleiste enthält. Außerdem werden wir ausführlich den Unterschied zwischen einem ProgressDialog und einer ProgressBar erörtern.

Android ProgressDialog

Android ProgressDialog ist eine Erweiterung von AlertDialog. Um mehr über ein AlertDialog zu erfahren, schauen Sie sich das Tutorial hier an. Android ProgressDialog ist ein Dialogfeld/Fenster, das den Fortschritt einer Aufgabe anzeigt. Android ProgressDialog ist fast gleich wie ProgressBar, mit der Ausnahme, dass es als Dialogfeld angezeigt wird. Um einen ProgressDialog zu erstellen, der eine ProgressBar anzeigt, müssen wir ihn so instanziieren.

ProgressDialog progress = new ProgressDialog(this);

Unterschied zwischen Android ProgressDialog und ProgressBar

  1. Eine ProgressBar ist eine Ansicht (wie TextView, ImageView, Button, usw…), die in der Layout verwendet werden kann, um den Fortschritt anzuzeigen. Eine ProgressBar wird verwendet, um anzuzeigen, dass etwas in der App noch geladen wird, während der Benutzer immer noch mit anderen Teilen interagieren kann.
  2. ProgressDialog ist ein Dialog mit einer integrierten ProgressBar. Ein ProgressDialog wird verwendet, um zu verhindern, dass der Benutzer während des Wartens mit der Anwendung interagiert. Die Dialogkomponente friert den Benutzer ein, sodass er nichts tun kann, bis der Dialog geschlossen wird.

Android ProgressDialog Attribute

Einige wichtige Attribute des Android ProgressDialog sind unten aufgeführt.

  1. setMessage() : Diese Methode wird verwendet, um dem Benutzer eine Nachricht anzuzeigen. Beispiel: Laden…
  2. setTitle() : Diese Methode wird verwendet, um einen Titel für das Dialogfeld festzulegen
  3. setProgressStyle(ProgressDialog.STYLE_HORIZONTAL) : Diese Methode wird verwendet, um die horizontale Fortschrittsleiste im Dialogfeld anzuzeigen
  4. setProgressStyle(ProgressDialog.STYLE_SPINNER) : Diese Methode wird verwendet, um die Kreis-/Dreh-Fortschrittsleiste im Dialogfeld anzuzeigen
  5. setMax() : Diese Methode wird verwendet, um den maximalen Wert festzulegen
  6. getProgress() : Diese Methode wird verwendet, um den aktuellen Fortschrittswert als Zahl abzurufen
  7. getMax() : Diese Methode gibt den maximalen Wert des Fortschritts zurück
  8. show(Context context, CharSequence title, CharSequence message) : Dies ist eine statische Methode, die verwendet wird, um den Fortschrittsdialog anzuzeigen
  9. incrementProgressBy(int diff): Diese Methode erhöht die Fortschrittsleiste um den Wertunterschied, der als Parameter übergeben wird

In diesem Tutorial entwickeln wir eine Anwendung, die einen ProgressDialog mit einer horizontalen ProgressBar anzeigt, die sich alle 200 Millisekunden erhöht.

Android ProgressDialog Projektstruktur

Android ProgressDialog Beispiel

Die activity_main.xml enthält eine Schaltfläche, die bei einem Klick einen ProgressDialog aufruft, wie im folgenden XML-Code gezeigt: 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>

Die Datei MainActivity.java ist unten angegeben. 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);
                }
            };
        });
    }
}

Der folgende Code aktiviert den Handler, in dem wir den Code zum Inkrementieren der Fortschrittsleiste schreiben.

handle.sendMessage(handle.obtainMessage());

Unten ist das Ausgabevideo, wenn Sie das Beispiel der Android-Fortschrittsdialoganwendung im Android-Emulator ausführen. Damit endet das Tutorial zum Android-Fortschrittsdialogbeispiel. Sie können das endgültige Android ProgressDialog-Projekt über den unten stehenden Link herunterladen.

Laden Sie das Android ProgressDialog-Projekt herunter

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