Usuario:ManuelRomero/Android/PrimerosContactos/EjemploCajasDialogo

De WikiEducator
Saltar a: navegación, buscar

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