El widget Spinner es uno de los elementos más utilizados para realizar interfaces, por eso en esta ocasión les mostrare dos maneras de llenar un Spinner.
Introduciendo los datos desde XML
La forma mas sencilla para llenar los valores de un spinner es utilizar un arreglo con las opciones a mostrar.
Primero creamos nuestra vista en donde mostraremos el spinner.
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.str.glista.spiner2"> <Spinner android:id="@+id/spinner4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="8dp" android:layout_marginEnd="8dp" android:layout_marginStart="8dp" android:layout_marginTop="8dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.434" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/textView52" app:layout_constraintVertical_bias="0.061" /> </android.support.constraint.ConstraintLayout>
Después nos vamos al archivo res/values/string.xml para crear un arreglo con las opciones.
<string-array name="lenguajes"> <item>Seleccione</item> <item>Ruby</item> <item>Java</item> <item>.NET</item> <item>Python</item> <item>PHP</item> <item>JavaScript</item> <item>GO</item> </string-array>
Lo siguiente es indicar que usara este arreglo para mostrar las opciones, esto lo hacemos con la características entries, para lo cual agregamos la siguiente linea en el código de nuestro layout.
android:entries="@array/lenguajes"
De esta manera sencilla llenamos nuestro Spinner.
Introduciendo los datos desde Java
Para esta opción necesitamos un Adapter (clase que sirve como intermedio entre el Spinner y la colección de datos que contiene.)
Esta clase que usaremos es ArrayAdapter , la cual usa un constructor con los siguiente parámetros: Context (el mismo Activity), un recurso o vista para mostrar los datos (usamos los default de Android) y el array String que creamos.
Para esta opción vamos a comenzar por crear el arreglo con las opciones pero esta vez lo haremos en el clase Java de la Actividad.
public class spiner2 extends AppCompatActivity { String[] lenguajes = {"Seleccione","Ruby","Java",".NET","Python","PHP","JavaScript","GO"};
Después vamos a identificar el Spinner que deseamos llenar.
Spinner Slenguajes = (Spinner) findViewById(R.id.spinner4);
Ahora llamaremos al Adapter para poder llenar el Spinner como se comento anteriormente.
Slenguajes.setAdapter(new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_dropdown_item,lenguajes));
En donde:
android.R.layout.simple_spinner_dropdown_item: Representa la vista para mostrar las opciones.
lenguajes: Es el nombre de nuestro arreglo.
De esta forma cargara la información.
La utilidad de las opciones va a depender de la caracterisitca de las opciones. Si las opciones son fijas la mejor forma es utilizar el recurso XML, sin embargo si las opciones son dinámicas (Base de Datos ) las gestionamos a través del código Java.
Espero que estos ejemplos se han útiles. Comenta si te sirvió o que te gustaría que agregáramos.
Gracias!