Diferencia entre revisiones de «Usuario:ManuelRomero/Android/PrimerosContactos/EjemploCajasDialogo»

De WikiEducator
Saltar a: navegación, buscar
(La clase diálogo)
Línea 21: Línea 21:
 
Clase AlerteDialog Vs Builder Vs AlertDialog.Builder
 
Clase AlerteDialog Vs Builder Vs AlertDialog.Builder
 
Versión 1 (solo funciona un botón
 
Versión 1 (solo funciona un botón
método getActivity() de DialogFragmentç
+
método getActivity() de DialogFragmaentç
 
clase FragmentManager y método getFragmentmanager(() de la clase Activity
 
clase FragmentManager y método getFragmentmanager(() de la clase Activity
 
Implementamos los diferentes botones
 
Implementamos los diferentes botones
 
-->
 
-->
 +
*La clase VentanaDialogo va a ser un Fragment especializado '''''DialogFrament'''''
 +
*Como todo ''Fragement'' a la hora de ser ejecutado dependera de una ''Activity'' que inicia su ciclo de vida
 +
*Los métodos callback que se ejecutan cuando se inicia el ''DialogFragment'' son '''''onCreateDialog()'''''  y '''''onCreateView()'''''
 +
*Si vamos a usar una clase ya existen (AlerteDialog, ...), se escribe el código en ''onCreateDialog()'', sin embargo si fuéramos a realizar una caja de diálogo personalizada donde tuviéramos que definirnos un layout, tendríamos que sobreescribir el callback ''onCreteView()''
 +
*Escrbamos el código para visualizar una caja de diálogo ya establecida ''AlertDialog()''
 +
 +
 +
===AlertDialog===
 +
*Es una clase que hereda de '''''Dialog''''' y tiene ya un layout establecido la cual se adapta visualmente en fución de que asignemos valores a propidades de la clase
 +
*Se debe utilizar para diálogos que usan las siguientes propiedades:
 +
# Un título
 +
# Un mensaje de texto
 +
# Uno, dos o tres botones
 +
# Una lista de items seleccionables, opcionalmente con casillas de verificación (checkboxes) o botones de opción (radio buttons).
 +
<!--
 +
Implementamos los diferents botones
 +
-->
 +
 
==Añadiendo mas botones==
 
==Añadiendo mas botones==
 
<!--
 
<!--
Línea 33: Línea 51:
 
Probando todo
 
Probando todo
 
-->
 
-->
 
==AlertDialog==
 
<!--
 
Implementamos los diferents botones
 
-->
 
 
 
===Dialog con 1, 2 o 3 botones===
 
===Dialog con 1, 2 o 3 botones===
 
<!--
 
<!--

Revisión de 22:35 8 nov 2013

Preparar la apalicacion

  • Vamos a realizar una app, en la que vamos a usar la forma recomendada para abrir la ventanas de diálogo
  • para ello

Nuestra aplicación va a constar de dos clases

  1. la activity que va a ser nuestra pantalla con los botones
  2. La ventana diálogo que en función del botón que presionemos visualizará una ventana de diálogo u otra

EjDialogoClases.png

La clase VentanaDialogo solo un botón

  • La clase VentanaDialogo va a ser un Fragment especializado DialogFrament
  • Como todo Fragement a la hora de ser ejecutado dependera de una Activity que inicia su ciclo de vida
  • Los métodos callback que se ejecutan cuando se inicia el DialogFragment son onCreateDialog() y onCreateView()
  • Si vamos a usar una clase ya existen (AlerteDialog, ...), se escribe el código en onCreateDialog(), sin embargo si fuéramos a realizar una caja de diálogo personalizada donde tuviéramos que definirnos un layout, tendríamos que sobreescribir el callback onCreteView()
  • Escrbamos el código para visualizar una caja de diálogo ya establecida AlertDialog()


AlertDialog

  • Es una clase que hereda de Dialog y tiene ya un layout establecido la cual se adapta visualmente en fución de que asignemos valores a propidades de la clase
  • Se debe utilizar para diálogos que usan las siguientes propiedades:
  1. Un título
  2. Un mensaje de texto
  3. Uno, dos o tres botones
  4. Una lista de items seleccionables, opcionalmente con casillas de verificación (checkboxes) o botones de opción (radio buttons).

Añadiendo mas botones

Dialog con 1, 2 o 3 botones

checkButton como opciones

  • Tenemos diferentes opciones y queremos seleccionar algunas de ellas
  • En ella el usuario debe checkear distintas opciones (seleccionar idiomas)
  • En este caso debemos invocar al método setMultiChoiceItems
  • Este método le pasamos el vector de opciones, un vector de boolenos que nos dice cada opción si está o no seleccionada y un listener.
  • Igualmente podemos añadir botones de aceptar o cancelar.
  <Button
        android:id="@+id/Dialog4"
        android:text="Idiomas"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="clickOpcionMultiple" />
public void clickOpcionMultiple(View v){
 
 
AlertDialog.Builder caja = new AlertDialog.Builder(this);
 
caja.setTitle("Tu OS móvil preferido?")
     .setMultiChoiceItems(idiomas,idiomasSeleccionados,
                           new DialogInterface.OnMultiChoiceClickListener() {
		                   @Override
			                 public void onClick(DialogInterface dialog, int which, boolean isChecked) {
				// TODO Auto-generated method stub
		                	       Context contesto = getBaseContext();
		                	       int duracion=Toast.LENGTH_SHORT;
		                	       Toast.makeText(contesto,idiomas[which]+(isChecked ? "seleccionado":"NOOOOOO seleccionado"),duracion).show();
                              }
		                   });
 
			AlertDialog alert = caja.create();
			alert.show();
}
}

-->

ratioButton

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

ProgressDialog

Barra de progreso circular

Barra de progreso horizontal

  • Ahora le diremos que el objeto que tiene la forma horizontal de línea
  • En este caso tenemos una barra que se va rellenando
  • Esto implica que el progreso tendrá un valor inicial e irá modificando hasta llegar a estar totalmente rellena
  • Vamos a añadir un botón para cancelar

DatePickerDialog

TimePickerDialog