Diferencia entre revisiones de «Usuario:ManuelRomero/Dialogo»

De WikiEducator
Saltar a: navegación, buscar
(Página blanqueada)
 
(4 revisiones intermedias por el mismo usuario no mostrado)
Línea 1: Línea 1:
{{:Usuario:ManuelRomero/Android/PrimerContacto/nav}}
 
<br>
 
===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
 
<source lang=xml>
 
<Button
 
        android:id="@+id/button1"
 
        android:layout_width="wrap_content"
 
        android:layout_height="wrap_content"
 
        android:text="Mensaje Toast"
 
        android:onClick="clickToast"/>
 
</source>
 
*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''
 
 
<!-- Aclarar esto de la vista-->
 
*Un objeto de la clase Toast se puede instanciar con un método estático '''''makeText''''' de la misma clase
 
<source lang=java>
 
makeText(contexto, texto, duracion)
 
</source>
 
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
 
<source lang=java>
 
    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();
 
    }
 
</source>
 
===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
 
<source lang=xml>
 
  <Button
 
        android:id="@+id/button2"
 
        android:layout_width="wrap_content"
 
        android:layout_height="wrap_content"
 
        android:text="Opciones Lengaje"
 
        android:onClick="clickMesajeOpciones"/>
 
</source>
 
*Definimos un array de opciones
 
<source lang=java>
 
CharSequence[] idiomas={"Españlo","Inglés","Alemán"};
 
    boolean [] idiomasSeleccionados=new boolean[idiomas.length];
 
</source>
 
 
<source lang=java>
 
    public void clickDialogoOpciones(View v){
 
    showDialog(0);
 
}
 
</source>
 
*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)'''''
 

Última revisión de 03:16 21 oct 2013