Spinner

Explicación del concepto de Spinner

Fuente: developer.android
Fuente: developer.android

DEFINICIÓN

Hereda de:

Herencia de spinner

Los Spinner (controles de números) ofrecen una manera rápida de seleccionar un valor de un conjunto.

En el estado predeterminado, un Spinner muestra su valor actualmente seleccionado. Al tocar el control de números, se muestra un menú desplegable con todos los demás valores disponibles, de los cuales el usuario puede seleccionar uno.

Los Spinner heredan de AdapterView que son una serie de Views que necesitan de un adapter para gestionar correctamente las opciones.

USO DESDE XML

A pesar de que su uso desde XML es muy sencillo, se debe tener en cuenta que es necesario un SpinnerAdapter para que el Spinner funcione correctamente:

ATRIBUTOS

android:dropDownHorizontalOffset

Define la diferencia horizontal, en pixeles, entre el desplegable y la flecha.

android:dropDownSelector

Define el drawable que se utilizará en vez de la flecha apuntando hacia abajo.

android:dropDownVerticalOffset

Define la diferencia vertical, en pixeles, entre el desplegable y la flecha.

android:dropDownWidth

Define la anchura del menú desplegable.

android:gravity

Define la posición en la que se colocará el item seleccionado.

android:popupBackground

Define el drawable que se utilizará de fondo en el menú desplegable.

android:prompt

el texto a mostrar cuando se muestra el dialogo del Spinner.

android:spinnerMode

Define el modo en que se muestra el Spinner, hay dos modos:

  • Dropdown -> Las opciones se muestran al usuario como un menú desplegable.

  • Dialog -> Las opciones se muestran al usuario en forma de diálogo.

CONFIGURACIÓN

Adapter

Fuente: developer.android

Las opciones que se muestran en el Spinner pueden provenir de cualquier fuente, sin embargo, se deben proveer con un adapter. Este adapter será:

  • SpinnerAdapter o ArrayAdapter -> Si provienen de una Array.

  • CursorAdapter -> Si vienen de una consulta a base de datos.

En este caso se va a utilizar un Array almacenado en el archivo de resources strings.xml:

A continuación se va a proceder a desarrollar el Adapter, en este caso utilizaremos un ArrayAdapter:

Opción 1: createFromResource

Es la opción recomendada por Google

Opción 2: ArrayAdapter normal

Listener

Cuando un usuario selecciona un elemento de menú desplegable, el objeto Spinner recibe un evento en relación con el elemento seleccionado.

Para definir el controlador del evento de selección para un Spinner, hay que seguir los siguientes pasos:

  • implementa la interfaz AdapterView.OnItemSelectedListener

  • Implementar los método miembro de devolución de llamada onItemSelected() y onNothingSelected() correspondientes.

Para obtener el ítem seleccionado lo puede hacer con parent?.getItemAtPosition(pos)

EJEMPLO

A continuación mostraré el código completo del ejemplo de esta entrada:

Last updated