2011-04-28 111 views
5

我从数据库填充一个微调这样的Android微调所选项目

// 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); 

当我试图让从旋转的选择的项目是这样

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

我得到的内容以下。 有没有一种方法可以从数据库中获取城市名称或城市ID。

enter image description here

回答

7

我认为得到的字符串,如您使用的是customadapter并给予适配器三个列表...

你不能简单地通过调用getSelectedItem()来获取选定的文本..

使用此:

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... :) 

希望它可以帮助....

5

只需从你的微调适配器和从光标

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

有没有像HTML中的方式有​​名称和键值在选项选择选项。 – 2011-04-28 12:53:08

+0

究竟你键值的意思 – 2011-04-28 12:54:34

+0

正在此错误:位置不能得到解决 – 2011-04-28 17:24:09

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

我实现它是这样的方式:

你将不得不投为getItem()方法,因为它实质上只是返回一个游标而不是游标中的单个行,这是令人讨厌的。

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

将光标移动到第一行

cursor.moveToFirst(); 

现在你可以使用匹配表设置你的纺纱适配器,它上面使用getAdapter抓住时最初查询列名光标字符串()

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

希望这有助于并希望任何反馈:)

0

希望这有助于!

Toast.makeText(getApplicationContext(), "getSelectedItem=" + spinnerString, Toast.LENGTH_SHORT).show(); 
      Toast.makeText(getApplicationContext(), "getSelectedItemPosition=" + nPos, Toast.LENGTH_SHORT).show(); 
相关问题