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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Mazilo
36 / 36 / 44
Регистрация: 31.10.2014
Сообщений: 206
#1

RecyclerView и SQLite - Программирование Android

01.11.2016, 19:30. Просмотров 676. Ответов 12
Метки нет (Все метки)

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

RecyclerView и SQLite - Программирование Android
Здравствуйте делал по этому гайду RecyclerView http://www.vogella.com/tutorials/AndroidRecyclerView/article.html#exercise_recycleview . У...

Список контактов с использованием RecyclerView и SQLite - Программирование Android
В продолжение темы - http://www.cyberforum.ru/android-dev/thread1840113.html Пример - обычная книжка контактов. Сами контакты хранятся...

Advanced RecyclerView и Expandable RecyclerView - Программирование Android
Сделал expandable recycler view на основе advancedRecyclerView сборочки, но не важно это думаю, наследуется от обычного RecyclerView. ...

RecyclerView внутри recyclerView - Программирование Android
Добрый день. Хочу сделать список recyclerView c горизонтальной прокруткой, который отображает допустим 20 элементов(card). Т.е....

RecyclerView - Программирование Android
Скажите что делаю не так. Цель: выводить содержимое бд заголовок, текст и т.п. Как я делал, точнее по гайдам. Тут из базы передаю...

Retrofit Recyclerview - Программирование Android
Здравствуйте, уважаемые форумчане. Помогите добавить onScroll в RecyclerView. Вот код public class MainActivity extends...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
vindigo
18 / 18 / 3
Регистрация: 15.05.2014
Сообщений: 78
01.11.2016, 19:38 #2
А что вам мешает отправить SQL-запрос на удаление записи вместе с удалением из списка?
1
Mazilo
36 / 36 / 44
Регистрация: 31.10.2014
Сообщений: 206
01.11.2016, 20:27  [ТС] #3
vindigo, меня интересует, на сколько это правильно с точки зрения архитектуры, может нужно как-то по другому
0
xaat
43 / 16 / 6
Регистрация: 05.12.2015
Сообщений: 65
01.11.2016, 21:02 #4
Цитата Сообщение от Mazilo Посмотреть сообщение
vindigo, меня интересует, на сколько это правильно с точки зрения архитектуры, может нужно как-то по другому
Получаешь курсор из БД, его передаешь в адаптер, если что то удалить нужно, делаешь запрос к БД на удаление, обновляешь, adapter.notifyDataSetChanged()
Примерно так
2
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
01.11.2016, 21:28 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от xaat Посмотреть сообщение
adapter.notifyDataSetChanged()
Маленькое замечание. Из всего мизера преимуществ RV перед ListView (а кое-где и откровенных провалов) можно выделить гибкое обновление списка. Этого в LV не хватает. В частности, notifyOnItemRemoved (или как-то так) будет работать быстрее, чем упомянутый выше, задержка при обновлении будет не так ощутима.
2
shavuz
107 / 113 / 21
Регистрация: 29.01.2014
Сообщений: 554
02.11.2016, 12:09 #6
со стороны архитектуры должно быть так:
1) должен быть класс менеджер, отвечающий только за обращение и прием данных с сервера, обычно его делают синглтоном для того чтоб он жил на протяжении жизни аппликации и к нему можно было обратиться с любого места
2)адаптер ресайклера это элемент ЮАЙ, он не долен делать ничего кроме как показывать ЮАЙ, то есть через его констрактор нужно передавать уже готовый лист который заранее был получен через менеджер(пункт 1) с сервера.
3) так же должен быть интерфейс, который тоже передается через констрактор в адаптер, когда нужно удалить обьект, адаптер делает три вещи 1) удаляет обьект из листа 2) нотифайдатасетченджд 3) через колбек (интерфейс, который передали через констрактор) сообщает классу который создал адаптер что нужно удалить определенный обьект. В тот момент когда создающий адаптер класс узнает о том что из адаптера пришел сигнал удалить обьект, он сообщает об этом менеджеру(пункт 1) и менеджер посылает запрос на удаление из базы данных
0
Mazilo
36 / 36 / 44
Регистрация: 31.10.2014
Сообщений: 206
06.11.2016, 16:43  [ТС] #7
shavuz, не хочу дублировать темы, поэтому спрошу здесь.

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

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

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

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

есть еще варрианты но этот самый простой
0
Mazilo
36 / 36 / 44
Регистрация: 31.10.2014
Сообщений: 206
07.11.2016, 13:21  [ТС] #9
shavuz, давайте еще варианты
0
Mazilo
36 / 36 / 44
Регистрация: 31.10.2014
Сообщений: 206
08.11.2016, 23:22  [ТС] #10
Вопрос актуален.
Цитата Сообщение от Mazilo Посмотреть сообщение
Можно как-то один recycler view разделить на несколько частей и к каждой части добавить по одному заголовку TextView?
Примерно так:
Заголовок_1
item
item
item
Заголовок_2
item
item
item
Заголовок_3
item
Соответственно, с возможность добавления или удаления элемента из любой группы. Item'ы одинаковые.
Или только для каждой группы использовать отдельный recycler view?
0
xaat
43 / 16 / 6
Регистрация: 05.12.2015
Сообщений: 65
09.11.2016, 01:05 #11
Сделай уже с двумя рециклерами, кода чуть больше, но логичней все и проще поддерживать.
0
Pablito
2495 / 1940 / 605
Регистрация: 12.05.2014
Сообщений: 6,804
Завершенные тесты: 1
09.11.2016, 01:08 #12
на форуме принято так: один вопрос - одна тема
и хоть бы для приличия написал бы как организованы эти группы и заголовки, где и как хранятся и т.д.
0
shavuz
107 / 113 / 21
Регистрация: 29.01.2014
Сообщений: 554
10.11.2016, 11:06 #13
еще варриант это на каждый вид айтема сделать свой хмл, и в лист обьектов добавить переменную тайп, если тайп заголовок - делаешь инфлейт его хмлю, если не заголовок то соответственно его хмлю. в онБайнд делаешь свич по тайпу и работаешь с обьектами хмл пришедшего тайпа
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2016, 11:06
Привет! Вот еще темы с ответами:

RecyclerView Adapter - Программирование Android
Пример классического создания адаптера RecyclerView public class UserDialogRecyclerAdapter extends...

RecyclerView click - Программирование Android
Добрый ночи. ребята как при клики зафиксировать блок. recView.addOnItemTouchListener( new...

Recyclerview-stickyheaders - Программирование Android
Подскажите кто пожалуйста как сделать recyclerview-stickyheaders как в ссылке только с cardView. ...

Анимация FloatingActionButton в RecyclerView - Программирование Android
Хочу сделать анимацию появления и скрытия Floating Action Button при скроле RecyclerView. Сделал по этой статье. Работает, но когда в...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.11.2016, 11:06
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru