Benvenuti all’esempio di ProgressDialog di Android. In questo tutorial impareremo come creare una ProgressDialog di Android contenente una ProgressBar. Discuteremo anche a lungo la differenza tra una ProgressDialog e una ProgressBar.
ProgressDialog di Android
ProgressDialog di Android è un’estensione di AlertDialog. Per saperne di più su AlertDialog, consulta il suo tutorial qui. ProgressDialog di Android è una finestra di dialogo che mostra il progresso di un’attività. ProgressDialog di Android è quasi uguale a ProgressBar con l’eccezione che viene visualizzato come una finestra di dialogo. Per creare una ProgressDialog per visualizzare una ProgressBar, dobbiamo istanziarla in questo modo.
ProgressDialog progress = new ProgressDialog(this);
Differenza tra ProgressDialog di Android e ProgressBar
- ProgressBar è una View (come TextView, ImageView, Button, ecc…), che può essere utilizzata nel layout per mostrare un progresso. Una ProgressBar viene utilizzata per indicare che qualcosa nell’app è ancora in caricamento mentre l’utente può ancora interagire con altre parti.
- ProgressDialog è una finestra di dialogo con una ProgressBar incorporata. Un ProgressDialog viene utilizzato quando vogliamo impedire all’utente di interagire con l’applicazione durante l’attesa. L’aspetto della finestra di dialogo blocca l’utente dal fare qualsiasi cosa fino a quando non viene chiusa
Attributi di Android ProgressDialog
Di seguito sono riportati alcuni attributi importanti di ProgressDialog di Android.
- setMessage() : Questo metodo viene utilizzato per mostrare un messaggio all’utente. Esempio: Caricamento…
- setTitle() : Questo metodo viene utilizzato per impostare un titolo alla finestra di dialogo
- setProgressStyle(ProgressDialog.STYLE_HORIZONTAL) : Questo metodo viene utilizzato per mostrare la barra di avanzamento orizzontale nella finestra di dialogo
- setProgressStyle(ProgressDialog.STYLE_SPINNER) : Questo metodo viene utilizzato per mostrare la barra di avanzamento circolare/girevole nella finestra di dialogo
- setMax() : Questo metodo viene utilizzato per impostare il valore massimo
- getProgress() : Questo metodo viene utilizzato per ottenere il valore corrente di avanzamento in numeri
- getMax() : Questo metodo restituisce il valore massimo di avanzamento
- show(Context context, CharSequence title, CharSequence message) : Questo è un metodo statico, utilizzato per visualizzare la finestra di dialogo di avanzamento
- incrementProgressBy(int diff): Questo metodo incrementa la barra di avanzamento della differenza di valore passata come parametro
In questo tutorial svilupperemo un’applicazione che visualizza un ProgressDialog contenente una ProgressBar orizzontale che si incrementa ogni 200 millisecondi.
Struttura del progetto ProgressDialog di Android
Esempio di ProgressDialog di Android
Il file activity_main.xml
contiene un pulsante che invoca un ProgressDialog al clic, come mostrato nel codice xml qui sotto: 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>
Il file MainActivity.java è fornito di seguito. 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);
}
};
});
}
}
Il seguente codice attiva il gestore nel quale scriviamo il codice per incrementare la barra di avanzamento.
handle.sendMessage(handle.obtainMessage());
Di seguito è il video di output quando eseguirai l’esempio di applicazione di dialogo di avanzamento Android nell’emulatore Android. Questo conclude il tutorial sull’esempio di ProgressDialog di Android. Puoi scaricare il progetto finale Progetto ProgressDialog di Android dal link sottostante.
Source:
https://www.digitalocean.com/community/tutorials/android-progressdialog-example