Android, Spinner valor inicial en java

En este tutorial explicaremos como poner un valor inicial a un Spinner desde el código Java. Se puede elegir la opción del Spinner que se desee desde java. Ya sea como valor inicial, un valor definido en el código.

Un Spinner, es básicamente una lista desplegable, en la que el usuario elige una de varias opciones. Cada opción o ítem del Spinner va a ejecutar su propia acción al momento en que el usuario presione el ítem.

Como dar un valor inicial al Spinner, en java.

  1. Primero crea el Spinner en XML, dale una ID.
  2. Luego en Java, relaciona mediante la ID. El spinner en XML, con una variable tipo Spinner en Java. Nuestra variable es spTest.
  3. Hay que darle una lista de elementos al spinner, con un adaptador. Puedes ver el tutorial Spinner en Android Studio, para hacer lo anterior.
  4. Usa el comando setSelecion(posición); para darle una posición al spinner desde el código Java. La variable posición, es una variable tipo int.

¿Cómo seleccionar una opción del Spinner desde el código?

En ocasiones es conveniente elegir una opción desde el código. Para poner un valor inicial, o bien según alguna otra opción que el usuario haya seleccionado.

Para hacer que el Spinner muestre una opción determinada, se usa el siguiente comando.

Private Spinner spTest;    //Declaro el spinner
spTest.setSelection(1);          //Indico que el spinner debe mostrar la posición 1

En setSelecion(), se le dice al spinner que elemento debe mostrar al usuario cuando no está expandido.

Ejemplo.

Si queremos que el spinner tena un valor inicial, es decir, al momento de abrir la Activity muestre una opción determinada. Hacemos lo mismo que hicimos anteriormente, solo que en esta ocasión, usamos setSelection() al inicio de la Activity.

Se recomienda usar setSelecion(), después de haber agregado la lista de datos al spinner.
Como se muestra en el siguiente ejemplo:

private Spinner spTest;
private ArrayList<String> lista = new ArrayList<String>();

   protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);

   inicioXML();
   agregandoValores();
   darClic();
}

private void inicioXML()
{
    spTest = findViewById(R.id.id_spinner);
}

private void agregandoValores()
{
   lista.add("Perro");
   lista.add("Gato");
   lista.add("Ratón");
   lista.add("Ardilla");
}

private void darClic()
{
   spTest.setOnItemSelectedListener(this);
   ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, lista);
   adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
   spTest.setAdapter(adapter);

   spTest.setSelection(2);
}

Primero se declara el spinner.

Luego en onCreate se llama a un método, en nuestro caso darClic().

Después en ese método se le agrega la lista de datos al Spinner con un adaptador.

Y por último se le da un valor inicial con setSelection().

Quieres saber más sobre como agregar datos al Spinner, ve nuestro tutorial.