SimpleCursorAdapter в ICS

Мне нужен SimpleCursorAdapter в моем проекте. Я написал код для этого в версии 2.3. Но я не мог добавить это в ICS. Он показывает, что SimpleCursorAdapter(context, layout, c, from, to) устарел, а новый — SimpleCursorAdapter(context, layout, c, from, to, flags).

Сюда включен новый параметр «флаги». Что добавить вместо флагов? Что это означает?


comment
Вы тоже используете CursorLoader?   -  person CjS    schedule 10.04.2012


Ответы (1)


Чтобы процитировать ссылку на Android, параметр флага имеет следующее значение:

public static final int **FLAG_AUTO_REQUERY**

С: Уровень API 11

Эта константа устарела. Этот параметр не рекомендуется, так как он приводит к тому, что запросы курсора выполняются в потоке пользовательского интерфейса приложения и, таким образом, могут привести к снижению скорости отклика или даже к ошибкам «Приложение не отвечает». В качестве альтернативы используйте LoaderManager с CursorLoader.

Если установлено, адаптер будет вызывать requery() для курсора всякий раз, когда будет доставлено уведомление об изменении содержимого. подразумевает

 FLAG_REGISTER_CONTENT_OBSERVER. Constant Value: 1 (0x00000001)

.

public static final int **FLAG_REGISTER_CONTENT_OBSERVER** 

С: Уровень API 11

Если установлено, адаптер зарегистрирует наблюдателя содержимого на курсоре и вызовет onContentChanged() при поступлении уведомления. Будьте осторожны при использовании этого флага: вам нужно будет отключить текущий курсор от адаптера, чтобы избежать утечек из-за его зарегистрированных наблюдателей. . Этот флаг не требуется при использовании CursorAdapter с CursorLoader. Постоянное значение: 2 (0x00000002)

Однако новый шаблон для Honeycomb+ заключается в использовании cursorLoader для управления курсором. В этом случае вы передаете 0 в качестве параметра flags.

Подробнее (с учебными пособиями) о CursorLoader + CursorAdapter

person CjS    schedule 10.04.2012
comment
Ошибка ушла.. но все равно не работает :( все данные из базы выбираются сразу.. - person Deepzz; 18.06.2012