¿Cómo obtener el valor de Spinner?

En Android, estoy tratando de obtener el valor de Spinner seleccionado con un oyente.

¿Cuál es la mejor manera de obtener el valor del spinner?

Spinner mySpinner=(Spinner) findViewById(R.id.your_spinner); String text = mySpinner.getSelectedItem().toString(); 

El Spinner debe disparar un evento "OnItemSelected" cuando algo está seleccionado:

 spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { Object item = parent.getItemAtPosition(pos); } public void onNothingSelected(AdapterView<?> parent) { } }); 

Digamos que este es su xml con entradas spinner (es decir, títulos) y valores:

 <resources> <string-array name="size_entries"> <item>Small</item> <item>Medium</item> <item>Large</item> </string-array> <string-array name="size_values"> <item>12</item> <item>16</item> <item>20</item> </string-array> </resources> 

Y este es su hilandero:

 <Spinner android:id="@+id/size_spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:entries="@array/size_entries" /> 

A continuación, en su código para obtener las entradas:

 Spinner spinner = (Spinner) findViewById(R.id.size_spinner); String size = spinner.getSelectedItem().toString(); // Small, Medium, Large 

Y para obtener los valores:

 int spinner_pos = spinner.getSelectedItemPosition(); String[] size_values = getResources().getStringArray(R.array.size_values); int size = Integer.valueOf(size_values[spinner_pos]); // 12, 16, 20 

Sí, puede registrar un oyente a través de setOnItemSelectedListener() , como se demuestra aquí .

 View view =(View) getActivity().findViewById(controlId); Spinner spinner = (Spinner)view.findViewById(R.id.spinner1); String valToSet = spinner.getSelectedItem().toString(); 

Si ya sabes que el elemento es una String , prefiero:

 String itemText = (String) mySpinner.getSelectedItem(); 

Llamar toString() a un Object que usted sabe que es una String parece una ruta más rotunda que simplemente lanzar el Object a String .

  • ¿Poner valores de ENUM a la ruleta androide?
  • ¿Cómo hago para que el estado "deshabilitado" de un Spinner esté deshabilitado?
  • Ocultar una hilera de carga al hacer clic fuera de ella en Android
  • Crear un hilandero por programación android
  • Cómo mantener onItemSelected de disparar en un Spinner recién instanciado?
  • Spinner onItemSelected llamado erróneamente (sin acción del usuario)
  • Cómo deshabilitar onItemSelectedListener que se invocará al configurar el elemento seleccionado por código
  • Android: No se puede diseñar el divisor de hilado
  • Android Spinner cambia dinámicamente artículos
  • ¿Hay alguna manera de usar setOnClickListener con un Spinner de Android?
  • Spinner no consigue el foco
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.