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

Estilos condicionales en iReport

Estilos condicionales en iReport

iReport nos da la posibilidad de dar un formato condicional a los diferentes registros resultado de nuestras consultas S...

Ejemplo práctico de MVC java Swing con Netbeans

Ejemplo práctico de MVC java Swing con Netbeans

Modelo Vista Controlador (MVC) es un patrón de arquitectura de software que separa los datos de una aplicación, la inter...

Reproductor de video con VLCJ

Reproductor de video con VLCJ

VLC Media Player es un reproductor multimedia de código abierto muy popular desarrollado por el proyecto VideoLAN. VLCJ...

Animación de JProgressBar con hilos

Animación de JProgressBar con hilos

Si nuestra aplicación tiene que llevar a cabo un cierto trabajo que no sabemos cuanto durará y que a la vez consume much...

Introducción a SQLite

Introducción a SQLite

Android hace uso de la base de datos SQLite para el manejo de registros en las aplicaciones. Según Santa Wikipedia defin...

SharedPreferences: Preferencias de Usuario

SharedPreferences: Preferencias de Usuario

En este post construiremos paso a paso un SharedPreferences más conocido en español como “Preferencias de Usuario...

Comparte lo que sabes

Categorias

Últimas entradas

La misión espacial de la NASA, el Mars  2020 Rover Mission esta proyectada para lanzarse en julio de 2020 y su llegada s...

El reconocimiento óptico de caracteres o OCR (Optical Character Recognition), es un proceso dirigido a la digitalización...

imgclip es una pequeña herramienta de línea de comandos el cual se ejecuta desde la terminal para Mac, Windows y Linux....

Alda es un lenguaje de programación desarrollado por Dave Yarwood el cual esta basado en texto para composición musical,...

Android Bolivia

MAUS