Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / Android / Ejemplo de uso de ProgressDialog

Ejemplo de uso de ProgressDialog

Autor jc mouse martes, diciembre 26, 2017

Un ProgressDialog muestra una ventana con un texto y una barra de progreso que indica el tiempo que tarda una tarea en realizarse para luego cerrarse automáticamente. También puede mostrarse una barra de progreso de forma circular.

Para este ejemplo usamos Android Studio, el tiempo estimado para su desarrollo es de 15 minutos.

El proyecto consiste en un botón que al ser presionado mostrara un ProgressDialog, realizara unas tareas en «N» tiempo para luego cerrarse automáticamente.

Partimos de un proyecto base de android con las siguientes características:

  • Nombre: ventanadeprogreso (org.example.ventanadeprogreso)
  • Plantilla: Empty Activity
  • Activity Name: MainActivity
  • Layout Name: activity_main

El Layout

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="org.example.ventanadeprogreso.MainActivity">

    <Button
    android:id="@+id/button"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Mostrar barra de progreso" />

</RelativeLayout>

Código MainAcivity

package org.example.ventanadeprogreso;

import android.app.ProgressDialog;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    private ProgressDialog barProgressDialog;
    private Handler updateBarHandler;
    private Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button = (Button) findViewById(R.id.button);
        updateBarHandler = new Handler();

        button.setOnClickListener(
                new View.OnClickListener() {
                    public void onClick(View view) {
                        barraDeProgreso(view);
                    }
                });
    }

    /**
     * Barra de progreso
     * */
    public void barraDeProgreso(View view){
        barProgressDialog = new ProgressDialog(MainActivity.this);
        barProgressDialog.setTitle("Procesando");
        barProgressDialog.setMessage("Por favor espere ...");
        barProgressDialog.setProgressStyle(barProgressDialog.STYLE_HORIZONTAL);
        barProgressDialog.setProgress(0);
        barProgressDialog.setMax(10);
        barProgressDialog.show();

        new Thread(new Runnable(){
            @Override
            public void run(){
                for(int i = 0; i<=barProgressDialog.getMax();i++){
                    //tarea a realizar
                    trabajando();
                    //actualiza barra de progreso
                    updateBarHandler.post(new Runnable() {
                        public void run(){
                            barProgressDialog.incrementProgressBy(1);
                        }

                    });
                }
                barProgressDialog.dismiss();
            }
        }).start();
    }

    /**
     * Emula una tarea que dura X tiempo
     * */
    private void trabajando(){
        try{
            Thread.sleep((int) Math.floor(Math.random()*(900)+100));
        }catch(Exception ex){

        }

    }

}

Al ejecutar el proyecto y presionar el botón tendremos lo siguiente:

enjoy!!!

Tags

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!
Autor: JC Mouse

Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.

Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye

Enjoy! :)

También Te Podría Interesar

Introducción a PHP con Netbeans

Introducción a PHP con Netbeans

NetBeans es un entorno de desarrollo integrado libre, hecho principalmente para el lenguaje de programación Java. Sin em...

Cambiar plataforma JDK en Netbeans

Cambiar plataforma JDK en Netbeans

Es recomendable tener actualizado la Maquina Virtual Java de nuestro equipo para poder disfrutar de las mejoras que trae...

Tapiti: A sumar y a saltar (Software Educativo)

Tapiti: A sumar y a saltar (Software Educativo)

Tapiti v1.2.0 es un Software Educativo Gratuito multiplataforma para los sistemas operativos Windows y Linux el cual no...

Lo nuevo de HTTP Client

Lo nuevo de HTTP Client

Una de las novedades de Java 9 y 10 aunque por el momento en modo de prueba (jdk.incubator.http) es el Cliente HTTP el c...

Extraer texto e imagen, exportar como PNG y encriptar un archivo PDF

Extraer texto e imagen, exportar como PNG y encriptar un archivo PDF

En este post hablaremos sobre la biblioteca de Apache PDFBox el cual es una herramienta para java de código abierto que...

Convertir voz a texto con Android

Convertir voz a texto con Android

En este post realizaremos una aplicación que pueda capturar nuestra voz y convertir en texto Pasar voz a texto con Andro...

Comparte lo que sabes

Categorias

Últimas entradas

Si trabajas con redes sociales (RRSS) a continuación te muestro tres herramintas gratuitas que te ayudaran a la hora de...

Por lo general se usan transacciones a nivel base de datos y posteriormente se llaman estos a través de procedimientos a...

En este post, aprenderemos como conectar Visual Basic 6 con SQL Server, abrir una tabla, leer su contenido y mostrar est...

Lo que veremos en este post es la configuración del driver para PHP de SQL Server que ha creado Microsoft el cual permit...

Herramientas

Generador de Enlaces a Whatsapp