domingo, 29 de marzo de 2015

Dialogo de progreso 2 en Android Studio


main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
        >

    <Button
            android:id="@+id/btn_dialog"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Clic para mostrar dialogo"
            android:onClick="onClick"
            />

    <Button
            android:id="@+id/btn_dialog2"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Clic para mostrar la barra de progreso"
            android:onClick="onClick2"
            />

    <Button
           android:id="@+id/btn_dialog3"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:text="Clic para mostrar detallamente la barra de progreso"
           android:onClick="onClick3"
           />

</LinearLayout>



MyActivity.java

package kenny.master.kenny;

import android.app.Activity;
import android.os.Bundle;

//librerias a utilizar
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.view.View;
import android.widget.Toast;

public class MyActivity extends Activity {

    //Declaro arreglos para mis elementos
    CharSequence[] items = { "One Piece" , "Pokemon" , "Dragon Ball Z" };
    boolean[] itemCheked = new boolean[ items.length ];

    //Declaro mi variable para la barra de progeso
    ProgressDialog progressDialog;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    //creo mi primer evento onClick
    public void onClick( View v )
    {
        showDialog(0);
    }

    //creo mi segundo evento onClick
    public void onClick2( View v )
    {
        //muestro el dialogo
        final ProgressDialog dialog = ProgressDialog.show( this , "Realiza alguna accion" , "Espera por favor..." , true );

        //Creo un hilo para determinar los tiempos de la barra de progreso
        new Thread(new Runnable() {
            @Override
            public void run() {
                try
                {
                    //Esperamos 5 segundos
                    Thread.sleep( 5000 );
                    dialog.dismiss();
                } catch( InterruptedException e )
                {
                    e.printStackTrace();
                }
            }
        }).start();
    }

    //Creo mi tercer evento onClick
    public void onClick3( View v )
    {
        showDialog(1);
        progressDialog.setProgress(0);

        //Creo mi hilo para el tiempo
        new Thread(new Runnable() {
            @Override
            public void run() {
                for( int i = 1 ; i <= 15 ; i++ )
                {
                    try {
                        Thread.sleep( 1000 );

                        //Actualizo el dialogo
                        progressDialog.incrementProgressBy((int)(100 / 15 ));
                    } catch( InterruptedException e)
                    {
                        e.printStackTrace();
                    }
                }

                //cierro la barra de progreso
                progressDialog.dismiss();
            }
        }).start();
    }

    @Override
    protected Dialog onCreateDialog( int id )
    {
      switch ( id )
      {
          case 1:
              progressDialog = new ProgressDialog( this );
              progressDialog.setTitle("Descargando arhivos....");
              progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
              progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, "Descargar",
                      new DialogInterface.OnClickListener() {
                          @Override
                          public void onClick(DialogInterface dialog, int escogerBoton) {
                              Toast.makeText(getBaseContext(), "Descargar presionado", Toast.LENGTH_SHORT).show();
                          }
                      });
           progressDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancelar",
                   new DialogInterface.OnClickListener() {
                       @Override
                       public void onClick(DialogInterface dialogInterface, int escogerBoton) {
                           Toast.makeText(getBaseContext() , "Cancelar presionado" , Toast.LENGTH_SHORT ).show();
                       }
                   });
              return progressDialog;
      }
        return null;
    }
}




No hay comentarios:

Publicar un comentario