lunes, 13 de octubre de 2014

Listas desplegables

Una lista desplegable nos ofrece una manera rápida de seleccionar una opción dentro de un conjunto de opciones. Una lista desplegable muestra por defecto la opción actualmente seleccionada. Cada vez que pulsamos sobre una lista desplegable, se nos mostrará un menú con todas las opciones disponibles desde el que podremos realizar una nueva selección.
Para añadir una lista desplegable a nuestra plantilla XML, utilizaremos un elemento Spinner. Por ejemplo:
<Spinner
    android:id="@+id/planets_spinner"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />
Para añadir las opciones a la lista desplegable utilizaremos un un adaptador SpinnerAdapter desde una actividad o fragmento.

Añadiendo opciones a una lista desplegable.

Para añadir opciones a una lista desplegable utilizaremos un adaptador de tipo SpinnerAdapter: un ArrayAdapter si los datos provienen de un array o un CursorAdapter si los datos provienen de una base de datos, por ejemplo.

Si las opciones disponibles en nuestra lista desplegable no van a cambiar, podríamos usar un recurso de tipo array de valores:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="planets_array">
        <item>Mercury</item>
        <item>Venus</item>
        <item>Earth</item>
        <item>Mars</item>
        <item>Jupiter</item>
        <item>Saturn</item>
        <item>Uranus</item>
        <item>Neptune</item>
    </string-array>
</resources>
Desde el código, cargamos los valores anteriores haciendo uso de un adaptador de tipo ArrayAdapter:
// Obtenemos la lista desplegable.
Spinner spinner = (Spinner) findViewById(R.id.spinner);

// Creamos el adaptador.
ArrayAdapter adapter = ArrayAdapter.createFromResource(this,
        R.array.planets_array, android.R.layout.simple_spinner_item);

// Asignamos la plantilla que será usada a la hora de mostrar las opciones.
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

// Asignamos el adaptador a la lista desplegable.
spinner.setAdapter(adapter);

No hay comentarios:

Publicar un comentario