¿Cómo se obtiene el valor seleccionado de un Spinner?

Estoy tratando de sacar la cadena de elementos seleccionados de un Spinner . Hasta ahora he obtenido esto:

 bundle.putString(ListDbAdapter.DB_PRI, v.getText().toString()); 

Esto no funciona y ofrece una excepción de lanzamiento de clases (pensé que podría lanzar una View a un widget que la hereda. ¡Obviamente no!) Entonces, ¿cómo se obtiene el valor seleccionado de un Spinner ?

Para obtener el valor seleccionado de un girador puede seguir este ejemplo .

Cree una clase anidada que implemente AdapterView.OnItemSelectedListener. Esto proporcionará un método de callback que notificará a su aplicación cuando se haya seleccionado un elemento del Spinner.

Dentro del método “onItemSelected” de esa clase, puede obtener el elemento seleccionado:

 public class YourItemSelectedListener implements OnItemSelectedListener { public void onItemSelected(AdapterView< ?> parent, View view, int pos, long id) { String selected = parent.getItemAtPosition(pos).toString(); } public void onNothingSelected(AdapterView parent) { // Do nothing. } } 

Finalmente, su ItemSelectedListener necesita estar registrado en el Spinner:

 spinner.setOnItemSelectedListener(new MyOnItemSelectedListener()); 

Tiene métodos getSelectedXXX de la clase AdapterView de la cual deriva Spinner:

getSelectedItem ()

getSelectedItemPosition ()

getSelectedItemId ()

Simplemente usa esto:

 spinner.getItemAtPosition(spinner.getSelectedItemPosition()).toString(); 

Esto le dará la String del elemento seleccionado en el Spinner .

mySpinner.getItemAtPosition(mySpinner.getSelectedItemPosition()) funciona en función de la descripción de Rich.

Depende de qué punto desea “capturar” el valor.

Por ejemplo, si desea capturar el valor tan pronto como el usuario cambie el ítem giratorio seleccionado, use el enfoque de oyente (provisto por jalopaba)

Si prefiere captar el valor cuando un usuario realiza la tarea final, como hacer clic en un botón Enviar, o algo, entonces la respuesta proporcionada por Rich es mejor.

Esta es otra forma:

 spinner.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView< ?> arg0, View arg1, int pos, long arg3) { // TODO Auto-generated method stub } @Override public void onNothingSelected(AdapterView< ?> arg0) { // TODO Auto-generated method stub } }); 

Para obtener solo el valor de la cadena dentro de la ruleta, use lo siguiente:

 spinner.getSelectedItem().toString(); 
 Spinner spinner=(Spinner) findViewById(R.id.spinnername); String valueinString = spinner.getSelectedItem().toString(); 

En caso de que los valores de Spinner sean int encasillarlo en int

 int valueinInt=(int)(spinner.getSelectedItem());