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

Взаимодействие базы данных на SQLlite и Фрагмента и RecyclerView - Android

Восстановить пароль Регистрация
 
halk0812
67 / 54 / 16
Регистрация: 05.09.2013
Сообщений: 496
Завершенные тесты: 1
21.09.2016, 10:53     Взаимодействие базы данных на SQLlite и Фрагмента и RecyclerView #1
Доброго времени суток.
Суть проблемы в следующем: есть база с некоторым набором данных, есть фрагмент, куда внедрен RecyclerView для их отображения. Подтянуть данные из таблицы при загрузке - никаких проблем. Но как правильнее сделать обновление (вероятнее всего RecyclerView) при добавлении и удалении данных?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.09.2016, 10:53     Взаимодействие базы данных на SQLlite и Фрагмента и RecyclerView
Посмотрите здесь:

Взаимодействие баз данных на сервере и мобильном устройстве Android
Элемент списка listView и БД SQLlite Android
Android Использование фрагмента в качестве временного хранилища данных
SQLlite взять случайную строку Android
Android SQLlite: хранение изображений
Android RecyclerView и SQLite
RecyclerView Android
RecyclerView click Android
Retrofit Recyclerview Android
Android Recyclerview-stickyheaders
RecyclerView и SQLite Android
Android Повторное создание фрагмента внутри фрагмента ViewPager

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CoolMind
411 / 394 / 65
Регистрация: 06.10.2012
Сообщений: 1,701
21.09.2016, 11:52     Взаимодействие базы данных на SQLlite и Фрагмента и RecyclerView #2
halk0812, привет!
Не совсем понял, есть ли уже события на добавление и удаление данных? Если да, то уже сами всё знаете. Добавляете (удаляете) в адаптер, обновляете адаптер. Для этого в адаптере должны быть публичные методы типа addAll и delete. Можно с указанием позиции, куда добавлять или откуда удалять и сколько. Затем можно даже внутри адаптера вызвать notifyItemInserted или notifyItemRemoved. Можно не в адаптере, а в активности.
halk0812
67 / 54 / 16
Регистрация: 05.09.2013
Сообщений: 496
Завершенные тесты: 1
21.09.2016, 11:54  [ТС]     Взаимодействие базы данных на SQLlite и Фрагмента и RecyclerView #3
Цитата Сообщение от CoolMind Посмотреть сообщение
есть ли уже события на добавление и удаление данных?
Нет, событий нет) Можно по-подробнее? Я чувствовал, что события быть должны (сам для андроида пишу только месяц).
CoolMind
411 / 394 / 65
Регистрация: 06.10.2012
Сообщений: 1,701
21.09.2016, 12:22     Взаимодействие базы данных на SQLlite и Фрагмента и RecyclerView #4
Цитата Сообщение от halk0812 Посмотреть сообщение
Можно по-подробнее?
Насколько я понял, у вас есть локальная БД, к ней вы выполняете запросы. Соответственно, когда делаете добавление, изменение или удаление, можете вызвать какую-то процедуру, которая меняет данные в адаптере, но делать это надо в UI-потоке.
Условно говоря,
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
new Thread(new Runnable... // Желательно, но можно и без потоков.
 
Выполнили запрос на изменение к БД.
Узнали, какие данные изменились.
final List<Item> items = new ArrayList<>();
for (Data data : changed_data) {
    Item item = new Item();
    // Какие-то действия с item.
    items.add(item);
}
activity.runOnUiThread(...
    int start = adapter.getItemCount();
    adapter.addAll(items);
    adapter.notifyItemRangeInserted(start, items.size());
}
halk0812
67 / 54 / 16
Регистрация: 05.09.2013
Сообщений: 496
Завершенные тесты: 1
21.09.2016, 12:27  [ТС]     Взаимодействие базы данных на SQLlite и Фрагмента и RecyclerView #5
Ну, то есть, без лишнего стеснения - добавляем публичные методы в адаптер, и дергаем их по надобности?
CoolMind
411 / 394 / 65
Регистрация: 06.10.2012
Сообщений: 1,701
21.09.2016, 20:26     Взаимодействие базы данных на SQLlite и Фрагмента и RecyclerView #6
halk0812, да. Я тоже сначала думал, что так плохо, а потом смирился. Там же можно и более хитрые штуки делать публичными. Например, внутренние классы (Item, ViewHolder), интерфейсы (допустим, чтобы забрать все данные из адаптера).
Yandex
Объявления
21.09.2016, 20:26     Взаимодействие базы данных на SQLlite и Фрагмента и RecyclerView
Ответ Создать тему

Метки
android, recyclerview, sqlite
Опции темы

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