¿Cómo obtiene el valor seleccionado de un Spinner?
Estoy tratando de obtener la cadena de elementos seleccionados de un Spinner
. Hasta ahora he conseguido esto:
bundle.putString(ListDbAdapter.DB_PRI, v.getText().toString());
Esto no funciona y da una excepción de casting de clase (pensé que podría lanzar una View
a un widget que hereda. Obviamente no!) Entonces, ¿cómo obtener el valor seleccionado de un Spinner
?
- Spinner error gráfico API 21
- Cambiar el contenido de la ficha dependiendo del elemento del hilador seleccionado
- Android.database.sqlite.SQLiteCursor@435b9ba0
- ActionBarCompat con Theme.AppCompat.Light.DarkActionBar muestra el texto del título blanco pero el texto del hilador negro
- spinner dropdown inicio de la parte superior de la ruleta
- Android: se centra en EditText después de la selección de Spinner
- Android- múltiples hilanderos
- ICS Spinner ("desplegable" en lugar de diálogo) en versiones anteriores de Android
- Cómo configurar el texto del hilandero actual sin cambiar los elementos de la lista de selección asociada
- Android- Los datos se asignan en el hilandero pero cuando se selecciona no se muestra el valor en el hilador
- Spinner se inicializa cuando empieza mi actividad - Android
- Android: Change Spinner Dropdown ver más
- Android: cómo puedo obtener el tamaño de la matriz de cadena?
Para obtener el valor seleccionado de un spinner puede seguir este ejemplo .
Cree una clase anidada que implemente AdapterView.OnItemSelectedListener. Esto proporcionará un método de devolución de llamada que notificará 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 debe estar registrado en el Spinner:
spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());
Tiene métodos getSelectedXXX de la clase AdapterView de la que deriva el Spinner:
GetSelectedItem ()
GetSelectedItemPosition ()
GetSelectedItemId ()
Simplemente use esto:
spinner.getItemAtPosition(spinner.getSelectedItemPosition()).toString();
Esto le dará la String
del elemento seleccionado en el Spinner
.
mySpinner.getItemAtPosition(mySpinner.getSelectedItemPosition())
funciona basado en la descripción de Rich.
Depende ay qué punto desea "atrapar" el valor.
Por ejemplo, si desea capturar el valor tan pronto como el usuario cambie el elemento seleccionado por el hilador, utilice el método de escucha (proporcionado por jalopaba)
Si prefiere captar el valor cuando un usuario realiza la tarea final como hacer clic en un botón Enviar, o algo así, la respuesta proporcionada por Rich es mejor.
Esta es otra manera:
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 sólo el valor de cadena dentro de la hiladora:
Spinner.getSelectedItem (). ToString ();
Spinner spinner=(Spinner) findViewById(R.id.spinnername); String valueinString = spinner.getSelectedItem().toString();
En caso de Spinner los valores son int
el typecast a int
int valueinInt=(int)(spinner.getSelectedItem());
- Cómo desbloquear el teléfono Android a través del código de forma remota
- Android: haga clic largo en las vistas secundarias de un ExpandableListView?