来自数据库的Android数组列表

时间:2011-04-28 11:28:59

标签: android arrays cursor spinner

我想创建一个存储在数据库中的城市数组

城市表

CREATE TABLE cities (_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT);

查询城市列表

// City List
public Cursor cityList() throws SQLException {
    return db.query(TABLE_CITIES, new String[] {ID, KEY_NAME}, null, null, null, null, null, null);
}

尝试将内容放入数组

    Cursor cities = db.cityList();
    startManagingCursor(cities);

    String[] city_list = new String[] { DBAdapter.KEY_NAME };
    Spinner cityList = (Spinner)this.findViewById(R.id.citySpiner);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, city_list);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    cityList.setAdapter(adapter);

无法使用数据库内容填充Spinner ..

1 个答案:

答案 0 :(得分:1)

尝试SimpleCursorAdapter

String[] from = new String[] {  DBAdapter.KEY_NAME  };
int[] to = new int[] {android.R.id.text1};
SimpleCursorAdapter cursorAdapter = new SimpleCursorAdapter(context, android.R.layout.simple_spinner_dropdown_item , cursor, from, to);
cityList.setAdapter(cursorAdapter);

修改

from表示Cursor中将用于在Spinner中显示为文本数组的列。 to表示视图的id(s),它将保存该列的值。 非常有趣的是,索引 N 处的视图将保留 N 列中的文字。