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

Agregar soporte para JNLP en servidor Apache

Agregar soporte para JNLP en servidor Apache

Java Network Launching Protocol (JNLP) es una especificación usada por Java Web Start. Esta especificación, permite tene...

Depuración avanzada en PHP

Depuración avanzada en PHP

Xdebug es una extensión para PHP que nos ayuda con la depuración y el desarrollo de aplicaciones. Contiene un depurador...

Google Open Source: Código Abierto +2000 proyectos

Google Open Source: Código Abierto +2000 proyectos

Google abre las puertas de Google Open Source un nuevo sitio web que une todos sus proyectos de «Código Abierto» que ha...

Blog MVC – Carga de páginas estáticas [p4]

Blog MVC – Carga de páginas estáticas [p4]

Cuarta parte de esta pequeña serie de tutoriales sobre [Crea tu blog con el patrón MVC y php] En esta cuarta entrega ver...

Convertir imagen a Base64

Convertir imagen a Base64

En este post vemos un ejemplo de como convertir un archivo de imagen en una cadena de texto codificado en Base64 aprovec...

JTable de colores [Problema Resuelto]

JTable de colores [Problema Resuelto]

Problema: Se extrae registros de una base de datos y se desea mostrar estos en un control JTable utilizando un DefaultTa...

Comparte lo que sabes

Categorias

Últimas entradas

Existe una gran cantidad de contenido sobre productividad, trucos, consejos y trabajo y más. Pero, ¿Qué pasa con esos mo...

En este post te enseño a usar una herramienta de Inteligencia Artificial para animar tus fotografias y esto completament...

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...

Herramientas

Generador de Enlaces a Whatsapp