Maximale Benutzerfreundlichkeit: Der Android ProgressDialog erklärt

Tauchen Sie ein in die Welt der Android-Entwicklung und lernen Sie, wie Sie mit dem ProgressDialog effektiv Fortschritt anzeigen können. Unser Blogbeitrag erklärt den Unterschied zwischen ProgressDialog und ProgressBar und bietet eine Schritt-für-Schritt-Anleitung zur Implementierung.

Android ProgressDialog

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

ProgressDialog progress = new ProgressDialog(this);

Unterschied zwischen Android ProgressDialog und ProgressBar

1. ProgressBar ist eine Ansicht (wie TextView, ImageView, Button usw.), die im 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 möglicherweise immer noch mit anderen Teilen interagieren kann.

2. ProgressDialog ist ein Dialog mit eingebauter ProgressBar. Ein ProgressDialog wird verwendet, wenn wir verhindern möchten, dass der Benutzer mit der Anwendung interagiert, während er wartet. Der dialogische Aspekt hindert den Benutzer daran, etwas zu tun, bis er abgebrochen wird.

Attribute des Android ProgressDialog

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

1. setMessage(): Diese Methode wird verwendet, um die Nachricht für den Benutzer 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 kreisförmige/drehende 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 in Zahlen zu erhalten.

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 Fortschrittsanzeige um den Wert, der als Parameter übergeben wird.

Projektstruktur des Android ProgressDialog

Die activity_main.xml enthält eine Schaltfläche, die bei Klick einen ProgressDialog aufruft, wie im folgenden XML-Code gezeigt:

<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 MainActivity.java-Datei ist wie folgt:

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.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 = 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("Es lädt....");
                progressDoalog.setTitle("Beispiel für ProgressDialog-Leiste");
                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);
                }
            };
        });
    }
}

In diesem Tutorial entwickeln wir eine Anwendung, die einen ProgressDialog enthält, der eine horizontale ProgressBar enthält, die sich alle 200 Millisekunden inkrementiert.

Das war unser Leitfaden zum Android ProgressDialog mit einem Beispiel. Mit diesen Informationen sind Sie bereit, Fortschrittsanzeigen in Ihren Android-Anwendungen zu implementieren. Wenn Sie Fragen haben, lassen Sie es uns wissen!

Kostenlosen Account erstellen

Registrieren Sie sich jetzt und erhalten Sie Zugang zu unseren Cloud Produkten.

Das könnte Sie auch interessieren: