En esta practicas realizamos un programa donde es muestre varios diálogos.
Creamos la pantalla principal donde se encuentran 6 botones que activarán los diferentes diálogos.
El clásico diálogo donde aparece una información(setPositiveButton). |
public void FunBoton1(View view) { AlertDialog.Builder dialog = new AlertDialog.Builder(this); dialog.setMessage("Pueba de diálogo"); dialog.setCancelable(false); dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); dialog.show(); } |
El clásico ListView (setItems) |
public void FunBoton2(View view) { final CharSequence[] items = {"Red1", "Red2", "Red3"}; AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Selecciona adaptador"); builder.setItems(items, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show(); } }); AlertDialog alert = builder.create(); alert.show(); } |
Parecido aListView (setSingleChoiceItems) |
public void FunBoton3(View view) { final CharSequence[] items = {"Red", "Green", "Blue"}; AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Pick a color"); builder.setSingleChoiceItems(items, -1,new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show(); alert.dismiss(); } }); alert = builder.create(); alert.show(); } |
Un cuadro de diálogo que se emplea para informar que se debe esperar mientras se está ejecutando algo. (ProgressDialog) En este caso hago una espera de 2 segundos. |
public void FunBoton4(View view) { final ProgressDialog MIdialog = ProgressDialog.show(MainActivity.this, "Dialogo","Espera 2 segundos...", true); new Thread() { public void run() { try { sleep(2000); } catch (Exception e) { } MIdialog.dismiss(); } }.start(); } |
Un cuadro de diálogo donde indica el progreso en una barra.(ProgressDialog). |
public void FunBoton5(View view) { MiDialogo = new ProgressDialog(MainActivity.this); MiDialogo.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); MiDialogo.setMessage("Loading..."); //MiDialogo.setCancelable(false); MiDialogo.setCancelable(true); MiDialogo.show(); MiDialogo.setProgress(25); } |
Esto no es un diálogo, pero necesitaba representar ProgressBar y he creado un contador de cuenta atrás mediante la clase MyCountDownTimer. He añadido un sonido cuando termina la cuenta atrás. |
public void FunBoton6(View view) { if (!timerHasStarted) { countDownTimer.start(); timerHasStarted = true; miText.setText("STOP"); } else { countDownTimer.cancel(); timerHasStarted = false; miText.setText("RESTART"); } } //Cuenta atras public class MyCountDownTimer extends CountDownTimer { public MyCountDownTimer(long startTime, long interval) { super(startTime, interval); } @Override public void onFinish() { miText.setText("Cuenta terminada!"); toneG.startTone(ToneGenerator.TONE_DTMF_S, 2000); } @Override public void onTick(long millisUntilFinished) { int i; miText.setText( " " + millisUntilFinished/100 ); i=(int)millisUntilFinished ; i/=100; miBarra.setProgress(i); } } |
Como vemos en todos los diálogos que he creado el nombre de las distintas opciones las he creado en el propio programa java.
Para una mejor internacionalización deberíamos crear todas las cadenas en el fichero "strings.xml" , pero para este caso sirve.
Ejemplo de como se debería hacerse en el modo de strings.xml.
res/values/strings.xml : | En la aplicación (java) |
<?xml version="1.0" encoding="utf-8"?> | Resources res = |
PROGRAMA
Saludos
Juan Galaz
Bibliografía:
http://www.edu4java.com/es/androidlibro/mostrar-dialogo-android.html
http://devtroce.com/2012/01/19/mensajes-de-dialogo-popup-alertdialog/
http://www.tutorialandroid.com/medio/como-programar-una-rueda-de-espera-progressdialog/
http://developer.android.com/intl/es/guide/topics/resources/string-resource.html
http://developer.android.com/intl/es/samples/MediaRouter/res/values/arrays.html
No hay comentarios:
Publicar un comentario