Usuario:ManuelRomero/Dialogo
De WikiEducator
< Usuario:ManuelRomero
Revisión a fecha de 12:45 4 nov 2012; ManuelRomero (Discusión | contribuciones)
concepto de cajas de dialogo
- Son widgets que contienen informción para el usuario
- La información se presenta en una ventana aparte de la aplicación
- La ventana puede tener botones para que el usuario interactúe
- Puede pedir información o simplemente aceptar o confirmar algo
- Iremos presentando las diferentes opciones que se plantean
Modificando la interfaz
- Añadimos un botón
- Referencia
http://developer.android.com/reference/android/widget/Button.html
- Los elementos gráficos los podemos añadir de dos maneras
- En el fichero java directamente
- En el fichero xml que descrive el layout de la ventana donde queremos que aparezcan
- Lo haremos en el fichero xml por simplicidad
- La idea es que al hacer click salga un mensaje emergente
<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Mensaje Toast" android:onClick="clickToast"/>
- Entre los atributos vemos que está onClick
- Este atributo especifica el nombre del método que se va a ejecutar cuando ocurra la acción
- En el código ese método recibirá la vista de este layout como parámetro
El fichero java
- Escribimos el código para que aparezca el mensaje
- Básicamente lo que haremos es escribir el código de este método clickToast
- Este método recibe como argumento la vista donde está el botón ç
- En él instanciaremos un objeto de la clase Toast
Clase Toast
clase definida en el paquete widgwt
android.widget.Toast
- Referencia
http://developer.android.com/guide/topics/ui/notifiers/toasts.html
- Esta clase implementa la ventana mas sencilla de diálogo
- Es simplemente un alert o MsgBox con un solo parámetro,
- El parámetro es el texto que visualiza
- Se visualiza independientemente del activity de la aplicación
- Por lo que no oculta la activity que sigue visible y activa
- El mensaje generado por Toast desaparece cuando se cumple un timeout
- Un objeto de la clase Toast se puede instanciar con un método estático makeText de la misma clase
makeText(contexto, texto, duracion)
Este métod recibe tres parámetros
- contexto
- Objeto que describe el en entorno actual de la interfaz de la aplicación
- texto
- La cadena de caracteres que se va a visualizar
- duración
- tiempo en el que dura la ventana emergente
- puede tomar dos valores como constantes de la propia clase
LENGTH_LONG LENGTH_SHORT
El método que añadimos es el siguiente
public void clickToast(View v){ Context contesto = getApplicationContext(); CharSequence texto = "Este ejemplo ha funcionado FACIL!!!!"; int duracion = Toast.LENGTH_LONG; Toast mensaje = Toast.makeText(contesto, texto, duracion); mensaje.show(); }
Ventana dialogo con ckeckbox
- A continución realizaremos otra ventana de diálogo
- Seguimos usando el mismo proyecto
- En ella el usuario debe checkear distintas opciones (seleccionar idiomas)
- En la misma confirmaremos o cancelaremos la selección
Realización de la práctica
- Modificamos el interfaz
<Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Opciones Lengaje" android:onClick="clickMesajeOpciones"/>
- Definimos un array de opciones
CharSequence[] idiomas={"Españlo","Inglés","Alemán"}; boolean [] idiomasSeleccionados=new boolean[idiomas.length];
public void clickDialogoOpciones(View v){ showDialog(0); }
- El uso del método showDialog esta depreciado a partir de la versión 3.0 de android.
- El argumento indica un determinado cuadro de diálogo a mostrar
- implementamos el método clickMesajeOpciones
- Este método lo que hace es llamar al método onCreateDialog() que hay que sobreescribir
Retorna un objeto Dialog que hay que importar de la clase import android.app.Dialog;
- Para mostrar el código debemos implementar el método onCreateDialog(int)