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

Criba de Eratóstenes animado

Criba de Eratóstenes animado

Eratóstenes era un matemático griego del siglo  III a.C. el cual ideó una manera rápida de obtener todos los números pri...

Efecto Taringa! en vivo

Efecto Taringa! en vivo

En la pagina de Taringa, existe una sección donde se puede ver lo que pasa en ese foro al momento, «Taringa! en vivo» se...

Galeria de imagene en java

Galeria de imagene en java

En este tutorial crearemos una Galeria de Imagenes al estilo de javascript o flash con Java y el IDE Netbeans 6.9. 1. Cr...

Buscar dispositivos con Java Media Framework

Buscar dispositivos con Java Media Framework

Java Media Framwork ademas de permitir reproducir archivos multimedia, tambien permite trabajar con dispositivos de capt...

Crea tu propia plantilla de proyectos

Crea tu propia plantilla de proyectos

En un post anterior [Crear plantillas personalizadas para Netbeans] vimos una forma sencilla que tiene Netbeans para fac...

Crea código HTML5 desde java con j2html

Crea código HTML5 desde java con j2html

j2html es una biblioteca para java que permite generar código html seguro desde código java utilizando sus propias etiqu...

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