Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
halk0812
67 / 54 / 31
Регистрация: 05.09.2013
Сообщений: 665
Завершенные тесты: 1
#1

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

21.09.2016, 10:53. Просмотров 344. Ответов 5

Доброго времени суток.
http://www.cyberforum.ru/android-dev/thread2273941.html
Суть проблемы в следующем: есть база с некоторым набором данных, есть фрагмент, куда внедрен RecyclerView для их отображения. Подтянуть данные из таблицы при загрузке - никаких проблем. Но как правильнее сделать обновление (вероятнее всего RecyclerView) при добавлении и удалении данных?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.09.2016, 10:53
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Взаимодействие базы данных на SQLlite и Фрагмента и RecyclerView (Программирование Android):

FireBase + RecyclerView| как обновить список, после удаления item из базы?
Добрый всем день! есть метод который удаляет айтем (значения items берутся...

Связать базу данных с RecyclerView
Здравствуйте уважаемые форумчане! Прошу вашей помощи! У меня есть фрагмент с...

Advanced RecyclerView и Expandable RecyclerView
Сделал expandable recycler view на основе advancedRecyclerView сборочки, но не...

RecyclerView внутри recyclerView
Добрый день. Хочу сделать список recyclerView c горизонтальной прокруткой,...

Повторное создание фрагмента внутри фрагмента ViewPager
Доброго времени суток! Использую внутри фрагмента элемент ViewPager, который...

5
CoolMind
421 / 404 / 65
Регистрация: 06.10.2012
Сообщений: 1,732
21.09.2016, 11:52 #2
halk0812, привет!
Не совсем понял, есть ли уже события на добавление и удаление данных? Если да, то уже сами всё знаете. Добавляете (удаляете) в адаптер, обновляете адаптер. Для этого в адаптере должны быть публичные методы типа addAll и delete. Можно с указанием позиции, куда добавлять или откуда удалять и сколько. Затем можно даже внутри адаптера вызвать notifyItemInserted или notifyItemRemoved. Можно не в адаптере, а в активности.
1
halk0812
67 / 54 / 31
Регистрация: 05.09.2013
Сообщений: 665
Завершенные тесты: 1
21.09.2016, 11:54  [ТС] #3
Цитата Сообщение от CoolMind Посмотреть сообщение
есть ли уже события на добавление и удаление данных?
Нет, событий нет) Можно по-подробнее? Я чувствовал, что события быть должны (сам для андроида пишу только месяц).
0
CoolMind
421 / 404 / 65
Регистрация: 06.10.2012
Сообщений: 1,732
21.09.2016, 12:22 #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());
}
1
halk0812
67 / 54 / 31
Регистрация: 05.09.2013
Сообщений: 665
Завершенные тесты: 1
21.09.2016, 12:27  [ТС] #5
Ну, то есть, без лишнего стеснения - добавляем публичные методы в адаптер, и дергаем их по надобности?
0
CoolMind
421 / 404 / 65
Регистрация: 06.10.2012
Сообщений: 1,732
21.09.2016, 20:26 #6
halk0812, да. Я тоже сначала думал, что так плохо, а потом смирился. Там же можно и более хитрые штуки делать публичными. Например, внутренние классы (Item, ViewHolder), интерфейсы (допустим, чтобы забрать все данные из адаптера).
0
21.09.2016, 20:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.09.2016, 20:26
Привет! Вот еще темы с решениями:

Вызов фрагмента из фрагмента с использованием EventBus
Доброго времени суток! Можно ли использовать EventBus для того, что из...

Использование фрагмента в качестве временного хранилища данных
Коллеги,здравствуйте. Есть необходимость в создании временного хранилища для...

Как скачать с базы данных sqllite нужные мне данные в структуру?
Подскажите пожалуйста, работаю через sqllite, как скачать с базы данных нужные...

Взаимодействие базы данных access и vb
Товарищи программисты! Хочу понять принцип присоединения таблицы к visual...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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