Урок 136. CursorLoader

Обсуждение уроков
Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Урок 136. CursorLoader

Сообщение damager82 » 18 ноя 2013, 00:00

В этом уроке:
- используем CursorLoader


Click here to read this article!
Последний раз редактировалось damager82 28 май 2017, 21:50, всего редактировалось 5 раз.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Newbilius
Сообщения: 12
Зарегистрирован: 26 авг 2013, 13:02

Re: Урок 136. CursorLoader

Сообщение Newbilius » 18 ноя 2013, 11:45

Есть вопрос: а если данных будет много, даже МНОГО. Курсор будет подгружать данные по мере прокрутки (осталось X лементов до конца - он подгрузил следующие)?
Или просто на фоне крутить, пока не подгрузит все (даже если их несколько тысяч)?
Если второй вариант, как наиболее простым способом заставить его догружать из базы данные по мере прокрутки? (событие OnScroll+что-то ещё)

Ну и неприятный момент: Added in API level 11. Для android 2.3.X как быть? :(

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Урок 136. CursorLoader

Сообщение rezak90 » 18 ноя 2013, 13:17

Newbilius писал(а):Есть вопрос: а если данных будет много, даже МНОГО. Курсор будет подгружать данные по мере прокрутки (осталось X лементов до конца - он подгрузил следующие)?
Или просто на фоне крутить, пока не подгрузит все (даже если их несколько тысяч)?
Если второй вариант, как наиболее простым способом заставить его догружать из базы данные по мере прокрутки? (событие OnScroll+что-то ещё)

Ну и неприятный момент: Added in API level 11. Для android 2.3.X как быть? :(
Cursor тем и вкусен что данные подгружает по мере прокрутки, так что хоть млн данных роли не играет.
CursorLoader доступен в саппорт либе.
R.id.team
Политика на форуме запрещена

toragrin
Сообщения: 1
Зарегистрирован: 18 ноя 2013, 15:14

Re: Урок 136. CursorLoader

Сообщение toragrin » 18 ноя 2013, 15:29

У меня пока маловато опыта в Android developing, и я не могу найти в коде CursorLoader или MyCursorLoader из урока, подтверждения, что данные будут грузиться по мере прокрутки. Как я понял, грузятся все данные целиком. Это неправильное понимание?

Newbilius
Сообщения: 12
Зарегистрирован: 26 авг 2013, 13:02

Re: Урок 136. CursorLoader

Сообщение Newbilius » 19 ноя 2013, 06:20

Вот меня тот же вопрос мучает, что и toragrin.

rezak90 - можете дать ссылку на то место в документации, где говорится про плавную подгрузку по мере прокрутки?

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 136. CursorLoader

Сообщение Foenix » 19 ноя 2013, 07:41

да ладно, ну ошибся человек, чего вы так прям)
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Newbilius
Сообщения: 12
Зарегистрирован: 26 авг 2013, 13:02

Re: Урок 136. CursorLoader

Сообщение Newbilius » 19 ноя 2013, 08:21

Foenix писал(а):да ладно, ну ошибся человек, чего вы так прям)
В смысле? Просто правда хочется разобрать вопрос, "подгрузка по мере прокрутки" всё таки частый кейс. Никто никому никаких претензий то не предъявлял, "указать место в документации" - это же не ругательство о_О

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 136. CursorLoader

Сообщение Foenix » 19 ноя 2013, 09:01

да в том смысле, что курсор - это просто курсор, никакой встроенной динамической подгрузки у него нету. Хотя если вы спросите мое мнение, то если грузить курсор с локального sqlite, то заметного глазу замедления я на 90 тыс записей не видела. Вот если с удаленного, тогда да.. там постранично нужно организовывать.

Другое дело, что сам листвью по строению кеширует выводимую информацию (об этом много чего написано) с целью увеличить скорость показа данных - это да.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Newbilius
Сообщения: 12
Зарегистрирован: 26 авг 2013, 13:02

Re: Урок 136. CursorLoader

Сообщение Newbilius » 19 ноя 2013, 09:40

Foenix писал(а):да в том смысле, что курсор - это просто курсор, никакой встроенной динамической подгрузки у него нету. Хотя если вы спросите мое мнение, то если грузить курсор с локального sqlite, то заметного глазу замедления я на 90 тыс записей не видела. Вот если с удаленного, тогда да.. там постранично нужно организовывать.
Ага... спасибо! Надо поэкспериментировать.

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Урок 136. CursorLoader

Сообщение rezak90 » 19 ноя 2013, 18:45

Newbilius писал(а):Вот меня тот же вопрос мучает, что и toragrin.

rezak90 - можете дать ссылку на то место в документации, где говорится про плавную подгрузку по мере прокрутки?
Методом статистического анализа было вычесленно что данные вытягиваются все и хранятся в хешируемой виртуально-разделяемой памяти в андроиде. Курсор, как сказала мадемуазель pheonix, всеголишь интерфейс который выполняет управленческую роль над этими данными.
P.S. Документации по этому всему нету, это просто нужно открывать исходники и самому разбираться.
R.id.team
Политика на форуме запрещена

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 136. CursorLoader

Сообщение Foenix » 19 ноя 2013, 18:52

А перековеркал.....! никто и не поймет что это я такая умная :)
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Урок 136. CursorLoader

Сообщение rezak90 » 19 ноя 2013, 23:45

Foenix писал(а):А перековеркал.....! никто и не поймет что это я такая умная :)
я подтверждаю что ты очень умная, доказательства это твой рейтинг!
R.id.team
Политика на форуме запрещена

qualitat1ve
Сообщения: 6
Зарегистрирован: 18 фев 2013, 10:55

Re: Урок 136. CursorLoader

Сообщение qualitat1ve » 20 ноя 2013, 14:00

Сорри за возможный офтоп, но может кто подскажет как вытащить метаданные из фоток сохраненных на андроид устройстве (типа дата создания, разрешение файла и т.п.) используя CursorLoader? Я пока не осилил средства для работы с MediaStore (. Было бы замечательно увидеть полный урок на эту тему =).

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 136. CursorLoader

Сообщение Foenix » 20 ноя 2013, 14:40

вообще-то CursorLoader- это не средство работы с MediaStore
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

qualitat1ve
Сообщения: 6
Зарегистрирован: 18 фев 2013, 10:55

Re: Урок 136. CursorLoader

Сообщение qualitat1ve » 20 ноя 2013, 18:09

Возможно я неправильно выразился, меня интересуют не средства работы с MediaStore, а способ вытянуть метаданные всех сохраненных на устройстве фотографий.

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Урок 136. CursorLoader

Сообщение rezak90 » 20 ноя 2013, 18:45

qualitat1ve писал(а):Возможно я неправильно выразился, меня интересуют не средства работы с MediaStore, а способ вытянуть метаданные всех сохраненных на устройстве фотографий.
есть такой класс ExifInterface, в конструкторе бросаешь путь и имя файла, и дальше вытаскиваешь нужные метаданные методом getAttribute
R.id.team
Политика на форуме запрещена

qualitat1ve
Сообщения: 6
Зарегистрирован: 18 фев 2013, 10:55

Re: Урок 136. CursorLoader

Сообщение qualitat1ve » 21 ноя 2013, 00:26

Ясно, но в чем же разница между MediaStore и ExifInterface? Что лучше/хуже использовать?

krettt
Сообщения: 6
Зарегистрирован: 08 авг 2013, 22:00

Re: Урок 136. CursorLoader

Сообщение krettt » 22 ноя 2013, 21:04

Всем привет , есть вопрос по CursorAdapter .Как использовать его с checkbox ? Раньше использовал BaseAdapter там просто создавал массив boolean[] isCheckes; и в createView checkbox.setTag(position) и по клику на чекбокс заносил в массив значение. Можно ли сделать аналогичное с CursorAdapter?

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 136. CursorLoader

Сообщение Foenix » 22 ноя 2013, 21:16

Вопрос совершенно не по теме - тема о лоадерах.
Однако. КУрсор - это неизменяемая штука, поэтому использовать его с чекбоксом нельзя. К сожалению, придется перекинуть данные в массив и так работать.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

krettt
Сообщения: 6
Зарегистрирован: 08 авг 2013, 22:00

Re: Урок 136. CursorLoader

Сообщение krettt » 22 ноя 2013, 21:30

Спасибо за ответ . Я надеялся до конца .

Ответить