Форум программистов, компьютерный форум CyberForum.ru

RecyclerView и SQLite - Android

Восстановить пароль Регистрация
 
Mazilo
35 / 35 / 44
Регистрация: 31.10.2014
Сообщений: 194
01.11.2016, 19:30     RecyclerView и SQLite #1
Нужно наполнить Recycler View данными из базы данных. Единственное решение, которое я нашел в сети, это достать данные из базы, перекинуть их в список, а затем уже этот список передать в кастомный адаптер, который связанный с Recycler View.
Но получается, если буду удалять какой-то элемент из списка на экране, то он удалится только из списка, который я передал при создании адаптера, а в базе элемент так и останется. Может можно как-то по другому это реализовать?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2016, 19:30     RecyclerView и SQLite
Посмотрите здесь:

Загрузка изображений в RecyclerView Android
Android RecyclerView и SQLite
RecyclerView Android
RecyclerView click Android
Retrofit Recyclerview Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vindigo
18 / 18 / 3
Регистрация: 15.05.2014
Сообщений: 77
01.11.2016, 19:38     RecyclerView и SQLite #2
А что вам мешает отправить SQL-запрос на удаление записи вместе с удалением из списка?
Mazilo
35 / 35 / 44
Регистрация: 31.10.2014
Сообщений: 194
01.11.2016, 20:27  [ТС]     RecyclerView и SQLite #3
vindigo, меня интересует, на сколько это правильно с точки зрения архитектуры, может нужно как-то по другому
xaat
40 / 13 / 6
Регистрация: 05.12.2015
Сообщений: 64
01.11.2016, 21:02     RecyclerView и SQLite #4
Цитата Сообщение от Mazilo Посмотреть сообщение
vindigo, меня интересует, на сколько это правильно с точки зрения архитектуры, может нужно как-то по другому
Получаешь курсор из БД, его передаешь в адаптер, если что то удалить нужно, делаешь запрос к БД на удаление, обновляешь, adapter.notifyDataSetChanged()
Примерно так
CoolMind
405 / 388 / 65
Регистрация: 06.10.2012
Сообщений: 1,668
01.11.2016, 21:28     RecyclerView и SQLite #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от xaat Посмотреть сообщение
adapter.notifyDataSetChanged()
Маленькое замечание. Из всего мизера преимуществ RV перед ListView (а кое-где и откровенных провалов) можно выделить гибкое обновление списка. Этого в LV не хватает. В частности, notifyOnItemRemoved (или как-то так) будет работать быстрее, чем упомянутый выше, задержка при обновлении будет не так ощутима.
shavuz
56 / 62 / 10
Регистрация: 29.01.2014
Сообщений: 299
02.11.2016, 12:09     RecyclerView и SQLite #6
со стороны архитектуры должно быть так:
1) должен быть класс менеджер, отвечающий только за обращение и прием данных с сервера, обычно его делают синглтоном для того чтоб он жил на протяжении жизни аппликации и к нему можно было обратиться с любого места
2)адаптер ресайклера это элемент ЮАЙ, он не долен делать ничего кроме как показывать ЮАЙ, то есть через его констрактор нужно передавать уже готовый лист который заранее был получен через менеджер(пункт 1) с сервера.
3) так же должен быть интерфейс, который тоже передается через констрактор в адаптер, когда нужно удалить обьект, адаптер делает три вещи 1) удаляет обьект из листа 2) нотифайдатасетченджд 3) через колбек (интерфейс, который передали через констрактор) сообщает классу который создал адаптер что нужно удалить определенный обьект. В тот момент когда создающий адаптер класс узнает о том что из адаптера пришел сигнал удалить обьект, он сообщает об этом менеджеру(пункт 1) и менеджер посылает запрос на удаление из базы данных
Mazilo
35 / 35 / 44
Регистрация: 31.10.2014
Сообщений: 194
06.11.2016, 16:43  [ТС]     RecyclerView и SQLite #7
shavuz, не хочу дублировать темы, поэтому спрошу здесь.

Можно как-то один recycler view разделить на несколько частей и к каждой части добавить по одному заголовку TextView?

Примерно так:
Заголовок_1
item
item
item
Заголовок_2
item
item
item
Заголовок_3
item

Соответственно, с возможность добавления или удаления элемента из любой группы. Item'ы одинаковые.

Или только для каждой группы использовать отдельный recycler view?
shavuz
56 / 62 / 10
Регистрация: 29.01.2014
Сообщений: 299
06.11.2016, 17:27     RecyclerView и SQLite #8
Mazilo, ответ да. простой варриант это в каждом айтеме есть заголовок, текствью, он изначально скрыт, в листе прописываете переменную заголовок и держите ее пустой, в байндвьюхолдер проверяете, если заголовок пустой то ничего не делаете и его текствью остается скрытым, если же что то есть в заголовке то открываете текст вью и показываете заголовок.

есть еще варрианты но этот самый простой
Mazilo
35 / 35 / 44
Регистрация: 31.10.2014
Сообщений: 194
07.11.2016, 13:21  [ТС]     RecyclerView и SQLite #9
shavuz, давайте еще варианты
Mazilo
35 / 35 / 44
Регистрация: 31.10.2014
Сообщений: 194
08.11.2016, 23:22  [ТС]     RecyclerView и SQLite #10
Вопрос актуален.
Цитата Сообщение от Mazilo Посмотреть сообщение
Можно как-то один recycler view разделить на несколько частей и к каждой части добавить по одному заголовку TextView?
Примерно так:
Заголовок_1
item
item
item
Заголовок_2
item
item
item
Заголовок_3
item
Соответственно, с возможность добавления или удаления элемента из любой группы. Item'ы одинаковые.
Или только для каждой группы использовать отдельный recycler view?
xaat
40 / 13 / 6
Регистрация: 05.12.2015
Сообщений: 64
09.11.2016, 01:05     RecyclerView и SQLite #11
Сделай уже с двумя рециклерами, кода чуть больше, но логичней все и проще поддерживать.
Паблито
не спать!
1803 / 1537 / 478
Регистрация: 12.05.2014
Сообщений: 5,594
Завершенные тесты: 1
09.11.2016, 01:08     RecyclerView и SQLite #12
на форуме принято так: один вопрос - одна тема
и хоть бы для приличия написал бы как организованы эти группы и заголовки, где и как хранятся и т.д.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2016, 11:06     RecyclerView и SQLite
Еще ссылки по теме:

Android Принцип работы RecyclerView
Android Android fragment + recyclerView
Android Recyclerview-stickyheaders

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
shavuz
56 / 62 / 10
Регистрация: 29.01.2014
Сообщений: 299
10.11.2016, 11:06     RecyclerView и SQLite #13
еще варриант это на каждый вид айтема сделать свой хмл, и в лист обьектов добавить переменную тайп, если тайп заголовок - делаешь инфлейт его хмлю, если не заголовок то соответственно его хмлю. в онБайнд делаешь свич по тайпу и работаешь с обьектами хмл пришедшего тайпа
Yandex
Объявления
10.11.2016, 11:06     RecyclerView и SQLite
Ответ Создать тему
Опции темы

Текущее время: 18:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru