2011-04-28 30 views
5

estoy poblando un hilandero de la base de datos como ésteAndroid Spinner Ítem seleccionado

// Populating the City Spinner 
    Cursor cities = db.cityList(); 
    startManagingCursor(cities); 

    // create an array to specify which fields we want to display 
    String[] from = new String[] { DBAdapter.KEY_NAME }; 
    // create an array of the display item we want to bind our data to 
    int[] to = new int[] { android.R.id.text1 }; 

    Spinner cityList = (Spinner) this.findViewById(R.id.citySpiner); 
    SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, cities, from, to); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    cityList.setAdapter(adapter); 

Cuando intento para obtener el contenido del elemento seleccionado de la ruleta como esto

// Get the City 
       Spinner getCity = (Spinner) findViewById(R.id.citySpiner); 
       String cityName = getCity.getSelectedItem().toString(); 

consigo el siguiendo. ¿Hay alguna manera de obtener el nombre de la ciudad o la identificación de la ciudad de la base de datos?

enter image description here

Respuesta

7

creo, como usted está usando un customadapter y dando tres listas en el adaptador ...

no se puede obtener el texto seleccionado simplemente llamando a la getSelectedItem() ..

Utilice esta:

Spinner mySpinner = (Spinner)findViewbyId(R.id.spinner); 
int position = mySpinner.getSelectedItemPosition(); 
String Text = yourCityList[position].toString(); // dont know which list is holding the city list... 
// i didn't use any db in any of my app so cant tell you how can you get list... 
// leaving it to you... :) 

creo que sirve ....

5

Acaba de obtener el adaptador de la computadora spinner y obtener la cadena desde el cursor

Cursor cursor = (Cursor) myAdapter.getItem(position); 
String cityName = cursor.getString(cursor.getColumnIndex(DBAdapter.KEY_NAME)); 
+1

hay una manera en HTML de tener el nombre y el valor de la clave como en la opción de seleccionar opciones. –

+0

¿Qué es exactamente lo que quiere decir con valor de clave –

+0

estoy consiguiendo este error: posición no puede ser resuelto –

1
List<String> list = new ArrayList<String>(); 
    s = (Spinner)findViewById(R.id.spinner1); 
    SQLiteDatabase sqldb = db.openDataBase(); 
    Cursor cr = sqldb.rawQuery("select Name from employee",null); 
    if (cr.moveToFirst()) { 
     do { 
     list.add(cr.getString(0).toString()); 
     Toast.makeText(this,cr.getString(0).toString(),Toast.LENGTH_LONG).show(); 
     ArrayAdapter <String> a= new ArrayAdapter(this, android.R.layout.simple_spinner_item,list); 
     a.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
      s.setAdapter(a); 
     } while (cr.moveToNext()); 

     }//urvesh patel 
1

La forma en que he conseguido fue así:

Usted tendrá que emitir el getItem() método a un cursor, ya que básicamente devuelve un cursor en lugar de una fila individual en el cursor que es molesto.

final Cursor cursor = (Cursor) yourSpinner.getAdapter().getItem(position); 

Mover el cursor a la primera fila

cursor.moveToFirst(); 

Ahora usted puede conseguir la cadena desde el cursor con el nombre de la columna que coincide tabla consultada originalmente al fijar sus hilanderas adaptador que fue agarrado por encima de usar getAdapter()

final String selectedPartUUID = cursor.getString(cursor.getColumnIndex(TABLE_COLUMN_NAME)); 

Espero que esto ayude y agradecería cualquier comentario :)

0

Espero que esto ayude !!

Toast.makeText(getApplicationContext(), "getSelectedItem=" + spinnerString, Toast.LENGTH_SHORT).show(); 
      Toast.makeText(getApplicationContext(), "getSelectedItemPosition=" + nPos, Toast.LENGTH_SHORT).show(); 
Cuestiones relacionadas