Использование курсора Android
Ниже перечислены некоторые факты, связанные с курсором Android.
• Курсор — это коллекция строк.
• Перед чтением любых данных необходимо вызвать метод moveToFirst() , который устанавливает курсор перед первой строкой.
• Необходимо знать имена столбцов.
• Необходимо знать типы столбцов.
• Все методы доступа к полям используют номер столбца, так что необходимо преобразовать имена столбцов в их номера.
• Курсор допускает произвольную навигацию: вперед и назад, в том числе и через несколько строк.
• Поскольку курсор поддерживает произвольную навигацию, у него можно запросить общее количество строк.
У курсора Android имеется ряд методов, которые позволяют осуществлять перемещения по нему. В листинге 4.2 показано, как проверить, пуст ли курсор, и как перебрать все строки, когда он не пуст.
В начале листинга 4.2 предполагается, что курсор установлен перед первой строкой. Для установки курсора на первую строку используется метод moveToFirst() на объекте курсора. Этот метод возвращает false, если курсор пуст. Затем многократно вызывается метод moveToNext() для перемещения по курсору.
Для определения положения курсора в Android предусмотрены следующие методы:
isBeforeFirst()
isAfterLast()
isClosed()
Эти методы позволяют осуществлять навигацию по курсору с помощью цикла for, как в листинге 4.3, вместо цикла while, как в листинге 4.2.
Листинг 4.3. Навигация по курсору с помощью цикла for
// Получение индексов за пределами цикла for.
int nameColumn = cur.getColumnIndex(Contacts.DISPLAY NAME PRIMARY);
// Проход по курсору на основе индексов столбцов. for(cur.moveToFirst();!cur.isAfterLast();cur.moveToNext())
{
String name = cur.getString(nameColumn);
}
Индексный порядок столбцов выглядит несколько произвольно. Поэтому мы рекомендуем вначале получить индексы из курсора — это поможет избежать неприятных сюрпризов. Для определения количества строк в курсоре в объекте курсора предоставляется метод getCount() .
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.