Bienvenido al Ejemplo de Android ProgressDialog. En este tutorial aprenderemos cómo crear un Diálogo de Progreso de Android que contenga una Barra de Progreso. También discutiremos detalladamente la diferencia entre un ProgressDialog y una ProgressBar.
ProgressDialog de Android
El ProgressDialog de Android es una extensión de AlertDialog. Para saber más sobre un AlertDialog, consulta su tutorial aquí. El ProgressDialog de Android es una caja de diálogo/ventana de diálogo que muestra el progreso de una tarea. El Diálogo de Progreso de Android es casi igual que una ProgressBar con la excepción de que se muestra como una caja de diálogo. Para crear un ProgressDialog para mostrar una ProgressBar, necesitamos instanciarlo de esta manera.
ProgressDialog progress = new ProgressDialog(this);
Diferencia entre ProgressDialog de Android y ProgressBar
- ProgressBar es una Vista (como TextView, ImageView, Button, etc.), que se puede usar en el diseño para mostrar algún progreso. Una ProgressBar se utiliza para indicar que algo en la aplicación todavía se está cargando mientras el usuario aún puede interactuar con otras partes.
- ProgressDialog es un cuadro de diálogo con una ProgressBar ‘incorporada’. Se utiliza un ProgressDialog cuando queremos evitar que el usuario interactúe con la aplicación mientras espera. El aspecto de cuadro de diálogo impide al usuario hacer cualquier cosa hasta que se cierre
Atributos del ProgressDialog en Android
Algunos atributos importantes de ProgressDialog en Android se muestran a continuación.
- setMessage(): Este método se utiliza para mostrar un mensaje al usuario. Ejemplo: Cargando…
- setTitle(): Este método se utiliza para establecer un título en el cuadro de diálogo
- setProgressStyle(ProgressDialog.STYLE_HORIZONTAL): Este método se utiliza para mostrar la barra de progreso horizontal en el cuadro de diálogo
- setProgressStyle(ProgressDialog.STYLE_SPINNER): Este método se utiliza para mostrar la barra de progreso circular/rotativa en el cuadro de diálogo
- setMax(): Este método se utiliza para establecer el valor máximo
- getProgress(): Este método se utiliza para obtener el valor actual de progreso en números
- getMax(): Este método devuelve el valor máximo del progreso
- show(Context context, CharSequence title, CharSequence message): Este es un método estático utilizado para mostrar el cuadro de diálogo de progreso.
- incrementProgressBy(int diff): Este método incrementa la barra de progreso por la diferencia de valor pasada como parámetro
En este tutorial desarrollaremos una aplicación que muestra un ProgressDialog que contiene una ProgressBar horizontal que se incrementa cada 200 milisegundos.
Android Estructura del Proyecto ProgressDialog
Ejemplo de ProgressDialog de Android
El archivo activity_main.xml
contiene un botón que invoca un ProgressDialog al hacer clic, como se muestra en el código xml a continuación: 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>
El archivo MainActivity.java se muestra a continuación. 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);
}
};
});
}
}
El siguiente código activa el manejador en el que escribimos el código para incrementar la barra de progreso.
handle.sendMessage(handle.obtainMessage());
A continuación se muestra el video de salida cuando ejecutes el ejemplo de la aplicación de diálogo de progreso de Android en el emulador de Android. Esto marca el final del tutorial de ejemplo de ProgressDialog de Android. Puedes descargar el Proyecto ProgressDialog de Android final desde el siguiente enlace.
Source:
https://www.digitalocean.com/community/tutorials/android-progressdialog-example