Список массивов Android из базы данных

#android #arrays #cursor #spinner

#Android #массивы #курсор #счетчик

Вопрос:

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

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

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

Я не могу заполнить счетчик.. с содержимым базы данных.

Комментарии:

1. привет, харша, ты получил какую-либо ошибку при выполнении этого… Также проверьте, есть ли в курсоре cities какое-либо содержимое..

2. dinash .. нет, у него нет. в нем просто было имя столбца : (

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

Комментарии:

1. можете ли вы объяснить мне, что такое String from и int[] to?

2. Спасибо за объяснение, приятель 🙂 это немного сбивает с толку, но идею уловил 🙂