Diferencia entre revisiones de «Usuario:ManuelRomero/Android2/PrimerPrograma/Dialogo»
De WikiEducator
(→Empezamos) |
|||
Línea 1: | Línea 1: | ||
− | + | ===Dialog con 2 o 3 botones=== | |
− | {{ | + | {{Actividad| |
− | + | #Primero añadimos un botón para que realice esta acción | |
− | + | #Le asignamos en el atributo onClick en nombre de la función | |
− | + | #implementamos la función | |
− | + | }} | |
− | + | ||
− | < | + | <source lang=xml> |
− | < | + | <Button |
− | </ | + | android:id="@+id/btnDialogo1" |
− | === | + | android:text="Dialogo1" |
− | * | + | android:layout_width="wrap_content" |
− | * | + | android:layout_height="wrap_content" |
− | + | android:onClick="clickDialogo1" /> | |
− | * | + | </xml> |
− | + | ===El código === | |
− | + | *Una caja de diálog es un objeto de la clase '''AlertDialog''' | |
− | + | *Para configurar las propiedades de la caja de diálogo usamos un objeto que devuelve el método estático '''''AlertDialog.Builder(Context ); | |
− | # | + | *El procedimiento para crear/usar cajas de diálogos es el siguiente |
− | + | #creo un objeto para las propiedades de la caja de diálogo ''AlerDialog.Builder'' | |
− | # | + | #creo la caja de diálogo AlertDialog a partir de objeto anterior |
− | # | + | #Muestro la caja de diálogo |
− | + | <source lang=java> | |
− | + | AlertDialog.Builder caja = new AlertDialog.Builder(this);7 | |
− | + | caja.setTitle("Titulo"); | |
− | + | .setIcon("icono.png"); | |
− | + | ...... | |
− | + | AlertDialog dialogo = caja.create(); | |
− | + | dialogo.show(); | |
− | + | </source> | |
− | + | *Realizamos el código | |
− | * | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | Observar que para dar las diferentes propiedades puedo hacerlo seguido | |
− | + | objeto.propiedad1() | |
− | + | .propiedad2() | |
− | * | + | .... |
+ | .propiedadn(); | ||
+ | |||
+ | *Una vez creado el objeto le damos las propiedades que necesarias | ||
+ | *Los métodos que asignas propiedades son muy intuitivos, y permiten asignar | ||
+ | #Un título setTitle | ||
+ | #Un mensaje de texto | ||
+ | #Uno, dos o tres botones | ||
+ | #Una lista de items seleccionables (con casillas de verificación (checkboxes) o botones de opción (radio buttons) opcionales) | ||
+ | #El método setCancelabre(boolean) convierte la ventana de dialogo en modal respecto al botón de retroceso | ||
− | = | + | Vermos el código |
− | + | <source lang=java> | |
− | + | public void clickDialogo1(View v){ | |
− | + | AlertDialog.Builder builder = new AlertDialog.Builder(this); | |
− | + | builder.setMessage("¿Desea continuar con la transferencia de dinero?") | |
+ | .setTitle("Advertencia") | ||
+ | .setCancelable(false) | ||
+ | .setNegativeButton("Cancelar", | ||
+ | new DialogInterface.OnClickListener() { | ||
+ | public void onClick(DialogInterface dialog, int id) { | ||
+ | dialog.cancel(); | ||
+ | } | ||
+ | }) | ||
+ | .setPositiveButton("Continuar", | ||
+ | new DialogInterface.OnClickListener() { | ||
+ | public void onClick(DialogInterface dialog, int id) { | ||
+ | msgOK(); // metodo que se debe implementar | ||
+ | } | ||
+ | }); | ||
+ | AlertDialog alert = builder.create(); | ||
+ | alert.show(); | ||
+ | } | ||
− | + | private void msgOK(){ | |
− | + | Toast t = Toast.makeText(getApplicationContext(), "Has presionado ok", Toast.LENGTH_SHORT); | |
− | + | t.show(); | |
− | + | } | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</source> | </source> | ||
+ | *Conviene revisar el método para añadir botones | ||
+ | *Tenemos tres métodos para este cometido | ||
+ | setPositiveButton | ||
+ | setNegativeButton | ||
+ | setNeutralButton | ||
+ | *Estos métodos tienen dos parámetros el texto y el listener | ||
+ | *Se suele pasar una instancia del listener creandola en el propio parámetros | ||
+ | *Si quiere usar variables de la clase, éstas tienen que ser constantes | ||
− | === | + | {{Actividad|Se puede añadir otro botón a la caja de diálogo anterior}} |
− | * | + | ===checkButton como opciones=== |
− | * | + | *Tenemos diferentes opciones y queremos seleccionar algunas de ellas |
− | * | + | *En este caso debemos invocar al método |
− | + | ===ratio$Button como opciones=== | |
− | === | + | *Tenemos diferentes opciones y queremos seleccionar solo una |
− | * | + | ===Ventana dialogo con direfentes opciones=== |
+ | *En este caso añadimos el método setItems, en lugar de setMessage | ||
+ | *El método setItems como primer parámetro le pasaremos un vector de charSequences y el segundo es un listener | ||
+ | *Vemos el código | ||
<source lang=xml> | <source lang=xml> | ||
<Button | <Button | ||
− | android:id="@+id/ | + | android:id="@+id/btnOpciones" |
+ | android:text="Opciones" | ||
android:layout_width="wrap_content" | android:layout_width="wrap_content" | ||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||
− | + | android:onClick="clickMsgOpciones" /> | |
− | android:onClick=" | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</source> | </source> | ||
+ | <sourece lang=java> | ||
+ | public void clickMsgOpciones(View v){ | ||
+ | |||
+ | AlertDialog.Builder caja = new AlertDialog.Builder(this); | ||
+ | caja.setTitle("Indica sexo") | ||
+ | .setPositiveButton("Continuar", | ||
+ | new DialogInterface.OnClickListener() { | ||
+ | public void onClick(DialogInterface dialog, int id) { | ||
+ | msgOK(); // metodo que se debe implementar | ||
+ | } | ||
+ | }) | ||
+ | .setItems(sexo, new DialogInterface.OnClickListener() { | ||
+ | @Override | ||
+ | public void onClick(DialogInterface dialog, int elemento) { | ||
+ | // TODO Auto-generated method stub | ||
+ | Toast t = Toast.makeText(getApplicationContext(), "Has seleccionado "+sexo[elemento],Toast.LENGTH_LONG); | ||
+ | t.show(); | ||
+ | dialog.cancel(); | ||
+ | } | ||
+ | }); | ||
− | + | AlertDialog alert = caja.create(); | |
− | + | alert.show(); | |
− | + | ||
} | } | ||
</source> | </source> | ||
− | * | + | * |
− | + | ||
− | |||
− | |||
− | |||
− | + | *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 |
− | * | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | *En | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + |
Revisión de 00:15 23 may 2013
Contenido
Dialog con 2 o 3 botones
<Button android:id="@+id/btnDialogo1" android:text="Dialogo1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="clickDialogo1" /> </xml> ===El código === *Una caja de diálog es un objeto de la clase '''AlertDialog''' *Para configurar las propiedades de la caja de diálogo usamos un objeto que devuelve el método estático '''''AlertDialog.Builder(Context ); *El procedimiento para crear/usar cajas de diálogos es el siguiente #creo un objeto para las propiedades de la caja de diálogo ''AlerDialog.Builder'' #creo la caja de diálogo AlertDialog a partir de objeto anterior #Muestro la caja de diálogo <source lang=java> AlertDialog.Builder caja = new AlertDialog.Builder(this);7 caja.setTitle("Titulo"); .setIcon("icono.png"); ...... AlertDialog dialogo = caja.create(); dialogo.show();
- Realizamos el código
Observar que para dar las diferentes propiedades puedo hacerlo seguido
objeto.propiedad1() .propiedad2() .... .propiedadn();
- Una vez creado el objeto le damos las propiedades que necesarias
- Los métodos que asignas propiedades son muy intuitivos, y permiten asignar
- Un título setTitle
- Un mensaje de texto
- Uno, dos o tres botones
- Una lista de items seleccionables (con casillas de verificación (checkboxes) o botones de opción (radio buttons) opcionales)
- El método setCancelabre(boolean) convierte la ventana de dialogo en modal respecto al botón de retroceso
Vermos el código
public void clickDialogo1(View v){ AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage("¿Desea continuar con la transferencia de dinero?") .setTitle("Advertencia") .setCancelable(false) .setNegativeButton("Cancelar", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }) .setPositiveButton("Continuar", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { msgOK(); // metodo que se debe implementar } }); AlertDialog alert = builder.create(); alert.show(); } private void msgOK(){ Toast t = Toast.makeText(getApplicationContext(), "Has presionado ok", Toast.LENGTH_SHORT); t.show(); }
- Conviene revisar el método para añadir botones
- Tenemos tres métodos para este cometido
setPositiveButton setNegativeButton setNeutralButton
- Estos métodos tienen dos parámetros el texto y el listener
- Se suele pasar una instancia del listener creandola en el propio parámetros
- Si quiere usar variables de la clase, éstas tienen que ser constantes
checkButton como opciones
- Tenemos diferentes opciones y queremos seleccionar algunas de ellas
- En este caso debemos invocar al método
ratio$Button como opciones
- Tenemos diferentes opciones y queremos seleccionar solo una
Ventana dialogo con direfentes opciones
- En este caso añadimos el método setItems, en lugar de setMessage
- El método setItems como primer parámetro le pasaremos un vector de charSequences y el segundo es un listener
- Vemos el código
<Button android:id="@+id/btnOpciones" android:text="Opciones" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="clickMsgOpciones" />
<sourece lang=java> public void clickMsgOpciones(View v){
AlertDialog.Builder caja = new AlertDialog.Builder(this); caja.setTitle("Indica sexo") .setPositiveButton("Continuar", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { msgOK(); // metodo que se debe implementar } }) .setItems(sexo, new DialogInterface.OnClickListener() {
@Override public void onClick(DialogInterface dialog, int elemento) { // TODO Auto-generated method stub Toast t = Toast.makeText(getApplicationContext(), "Has seleccionado "+sexo[elemento],Toast.LENGTH_LONG); t.show(); dialog.cancel(); } });
AlertDialog alert = caja.create(); alert.show(); } </source>
- 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