HI I´M AN IDEA
WANNA PLAY
WITH ME?
 

Tutorial: Llenando spinners desde xml

En la última aplicación que estoy desarrollando me he encontrado con una hoja de toma de datos con una gran cantidad de grupos de valores de los cuales debemos elegir uno por lo que la estructura mas ágil que me vino a la cabeza es el uso de spinners.

Soy un fanático de las bases de datos y en un primer lugar pensé en almacenar los distintos valores en un BD sqlite y llenar desde ahí los spinners, pero al final me decanté por almacenarlos en xml y leerlos de ahí.

Vamos primero con lo básico.

Definiendo arrays en Android

Tenemos dos formas de definir un array en Android. La primera sería definirlo puramente en java:

String valores[] = {"Elemento 1","Elemento 2","Elemento 3","Elemento 4","Elemento 5"}

Por otra parte, y gracias a las facilidades que nos da Android, podremos definirlos en la capa XML.

Para ello, crearemos un archivo al que llamaremos «arrays.xml» en el directorio /res/values/ . Aquí escribiremos los distintos valores y daremos nombre a nuestro array de la siguiente manera.

<resources>

<string-array name="valores">

<item>Elemento 1</item>

<item>Elemento 2</item>

<item>Elemento 3</item>

<item>Elemento 4</item>

<item>Elemento 5</item>

</string-array>

</resources>

A mi parecer esta última es la manera mas sencilla y limpia de hacerlo. A continuación pasaremos a definir nuestro spinner en nuestro «main.xml».

Definiendo el Spinner

Abriremos con el editor nuestro archivo «main.xml» o donde queramos implementarlo e introduciremos el siguiente código xml.

<Spinner

android:id="@+id/miSpinner"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:drawSelectorOnTop="true”

android:prompt="Spinner de Valores" />

Si estamos acostumbrados a trabajar con Android, estaremos familiarizados con todo estos atributos.

Una vez que hemos definido nuestro spinner en la capa visual de la aplicación pasaremos al código java para asignar los distintos valores.

Primero crearemos una variable de tipo Spinner y asignaremos el recurso que acabamos de crear.

Spinner sValores = (Spinner) findViewById(R.id.miSpinner);

Una vez que tenemos nuestro Spinner en java, pasaremos a crear un ArrayAdapter para asignarle los valores, será del tipo createFromResource para asignarle un recurso xml.

ArrayAdapter adapter = ArrayAdapter.createFromResource( this, R.array.valores , android.R.layout.simple_spinner_item); 
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

Como veis hemos utilizado el nombre que dimos anteriormente al array. Por último asignaremos el ArrayAdapter al Spinner.

sValores.setAdapter(adapter);

Con esto ya tendríamos que tener funcionando nuestro spinner alimentado desde xml. ¿ Fácil verdad?

About the author

Jaime Mulero Hola! Me llamo Jaime Mulero, soy programador desde hace años, apasionado por la informática prácticamente desde que tengo uso de razón. Jquery Ninja, Codeigniter Trooper, database juggler and Android engineer! Jaime Mulero

VN:F [1.9.20_1166]
Rating: 9.5/10 (2 votes cast)
Tutorial: Llenando spinners desde xml, 9.5 out of 10 based on 2 ratings
Difunde la palabra
  • Print
  • Digg
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Yahoo! Buzz
  • Twitter
  • Google Bookmarks
  • Meneame

¿Algo que opinar? Deja tu comentario!