Список массивов Android из базы данных - PullRequest
0 голосов
/ 28 апреля 2011

Я хочу создать массив городов, которые хранятся в базе данных

Таблица городов

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 Ответ

1 голос
/ 28 апреля 2011

Попробуйте 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 означает идентификатор (и) представления, который будет содержать значение этого столбца.Очень интересно, что представление с индексом N будет содержать текст из столбца в N .

...