Android cómo obtener el elemento seleccionado de data spinner

Pregunta de novato. Estoy utilizando un SimleCursorAdapter para rellenar un spinner de una tabla SQLite, como se muestra en los documentos Android dev:

Spinner list=(Spinner)findViewById(R.id.cboModel); SimpleCursorAdapter ModelAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, model, new String[] {"Drug"}, new int[] {android.R.id.text1}); ModelAdapter.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item); list.setAdapter(ModelAdapter); list.setOnItemSelectedListener(onModelSelect); 

He configurado un oyente, pero no puedo averiguar cómo obtener el texto del elemento seleccionado, se extrae el SQLiteCursor, no el texto real en el hilandero.

 private AdapterView.OnItemSelectedListener onModelSelect= new AdapterView.OnItemSelectedListener() { public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { ModelName = parent.getSelectedItem().toString(); android.util.Log.w("OnItemSelect.cboModel", ModelName); } public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub } }; 

Google plantea la cuestión en varios foros de mensajes, pero no hay respuestas, por lo que parece ser una pregunta común novato. Puede ser dolorosamente obvio para algunos, pero si pudiera señalarme en la dirección correcta, lo agradecería. Gracias.

Dado que el elemento seleccionado es un Cursor, puede obtener fácilmente el valor llamando a getString con el índice de la columna en la consulta de base de datos original que utilizó para rellenar el Spinner.

 String spinnerString = null; Cursor cc = (Cursor)(yourSpinner.getSelectedItem()); if (cc != null) { spinnerString = cc.getString( cc.getColumnIndex("Drug")); } 

Esta técnica definitivamente funciona cuando el Spinner se llena desde la base de datos. No lo he probado con una matriz de recursos.

Calculado … obtener el id, a continuación, hacer una consulta de DB:

 String id_string = String.valueOf(id); thismodel=Pkmodel.getById(id_string, dbModel); ModelName=thismodel.getDrug(); 
  • SQLite dispara en Android?
  • Cómo utilizar la base de datos SQLite precargada en Android de Activos
  • Ordenar una lista en orden ascendente por fecha desde sqlite
  • Android sqlite delete no elimina realmente las filas
  • SQLiteDatabase close () función que causa NullPointerException cuando varios subprocesos
  • Cómo establecer una columna como indexador único en Sqlite
  • Android Sqlite IN, sin sintaxis
  • ¿Cuál es la manera más rápida de analizar una cadena JSON en una tabla SQLite?
  • ¿Cómo migrar la aplicación SQLite existente a la biblioteca de persistencia de habitaciones?
  • Agregar una columna a la tabla de SQLite en Android?
  • Actualizar la base de datos sqlite que copio de la carpeta de activos (Android)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.