En esta mini entrada comentaremos una forma de inicializar un Spinner en android con el valor que nosotros deseemos. Explicado de otra forma:
Nuestro Spinner contiene los días de la semana y por defecto nos mostrará «lunes», que será el valor en la posición 0 de nuestro componente, pero, ¿y si quisiéramos que apareciera otro de los valores?
Para ello vamos a crear un método que recibirá un string (el valor que queremos que se muestre), y nos devolverá el índice en el cual se encuentra esa cadena.
public class Utils { /** * Metodo que recorre un spinner para buscar una cadena contenida en el. * @param spinner * @param myString * @return Devuelve el indice correspondiende a la cadena */ public static int getIndexSpinner(Spinner spinner, String myString) { int index = 0; for (int i = 0; i < spinner.getCount(); i++) { if (spinner.getItemAtPosition(i).toString().equalsIgnoreCase(myString)) { index = i; } } return index; } }
Ahora, para ver su funcionamiento, sólo tendríasmos que crear un spinner, darle valores e inicializarlo usando setSelection, al cual le pasaremos el índice optenido anteriormente.
private Spinner spinnerSemana; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); spinnerSemana = (Spinner) findViewById(R.id.sp_semana); //Rellenar spinner con datos de ejemplo String[] valores = {"lunes","martes","miercoles","jueves","viernes","sábado", "domingo"}; spinnerSemana.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, valores)); //Seleccionar valor del spinner spinnerSemana.setSelection(Utils.getIndexSpinner(spinnerSemana, "jueves")); }