Использование курсора Android

Использование курсора 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() .

Поделиться в соц. сетях

Опубликовать в Google Buzz
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс

Добавить комментарий