Вам не нужно сначала подсчитывать, сколько их; вместо этого создайте функцию db.getTitles()
, которая возвращает все строки и возвращает курсор, а затем зацикливает курсор. Прямо сейчас у вас, вероятно, есть запрос, который выглядит примерно так: SELECT ColumnA, ColumnB FROM Titles WHERE id = 5
; просто скопируйте функцию, удалите параметр и снимите предложение WHERE, чтобы оно выглядело как SELECT ColumnA, ColumnB FROM Titles
.
Тогда ваш код будет выглядеть примерно так:
db.openDataBase(); // open connection with db
Cursor c = db.getTitles();
startManagingCursor(c);
//adding areas to the list here
if (c != null && c.moveToFirst()) {
do {
Area o1 = new Area();
o1.setOrderName(c.getString(1) + c.getString(2));
m_areas.add(o1);
} while (c.next());
}
db.close();
Мы проверяем, вернула ли функция курсор вообще, затем переходим к началу курсора и начинаем цикл, переходя к следующему элементу каждый раз. Для получения дополнительной информации об интерфейсе Cursor см. API здесь , или чтобы узнать больше о доступе к базе данных и о связанных с этим методах проектирования в целом, я советую изучить Блокнот Notepad .