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

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

Войти
Регистрация
Восстановить пароль
 
halk0812
67 / 54 / 16
Регистрация: 05.09.2013
Сообщений: 663
Завершенные тесты: 1
#1

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

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

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

FireBase + RecyclerView| как обновить список, после удаления item из базы? - Программирование Android
Добрый всем день! есть метод который удаляет айтем (значения items берутся из FireBase): public void DelPos(View v){ ...

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

Связать базу данных с RecyclerView - Программирование Android
Здравствуйте уважаемые форумчане! Прошу вашей помощи! У меня есть фрагмент с RecyclerView Код: package com.starikov.tester; ...

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

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

Использование фрагмента в качестве временного хранилища данных - Программирование Android
Коллеги,здравствуйте. Есть необходимость в создании временного хранилища для объектов(На время жизни приложения). Меня интересует,...

5
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
21.09.2016, 11:52 #2
halk0812, привет!
Не совсем понял, есть ли уже события на добавление и удаление данных? Если да, то уже сами всё знаете. Добавляете (удаляете) в адаптер, обновляете адаптер. Для этого в адаптере должны быть публичные методы типа addAll и delete. Можно с указанием позиции, куда добавлять или откуда удалять и сколько. Затем можно даже внутри адаптера вызвать notifyItemInserted или notifyItemRemoved. Можно не в адаптере, а в активности.
1
halk0812
67 / 54 / 16
Регистрация: 05.09.2013
Сообщений: 663
Завершенные тесты: 1
21.09.2016, 11:54  [ТС] #3
Цитата Сообщение от CoolMind Посмотреть сообщение
есть ли уже события на добавление и удаление данных?
Нет, событий нет) Можно по-подробнее? Я чувствовал, что события быть должны (сам для андроида пишу только месяц).
0
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
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 / 16
Регистрация: 05.09.2013
Сообщений: 663
Завершенные тесты: 1
21.09.2016, 12:27  [ТС] #5
Ну, то есть, без лишнего стеснения - добавляем публичные методы в адаптер, и дергаем их по надобности?
0
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
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
Привет! Вот еще темы с ответами:

Как скачать с базы данных sqllite нужные мне данные в структуру? - C++
Подскажите пожалуйста, работаю через sqllite, как скачать с базы данных нужные мне данные, например в структуру rc = sqlite3_exec(db,...

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

Взаимодействие базы данных формата dbf и MS SQL - C#
Здравствуй форум! Есть программа, которая работает с БД формата dbf, в ней хранятся данный о кадрах фирмы. Моя же программа работает с БД...

Вывод информации в DGV из базы sqllite - C#
Как мне вывести информацию из базы в которой имеется две таблицы(main, other) в разные DGV. public SQLiteConnection sql_con; ...


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

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

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