Обновить recyclerview с адаптера

Я пытаюсь обновить данные в recyclerview из адаптера, функции внутри адаптера для обновления.

Он работает правильно, и данные добавляются в базу данных, но не обновляют представления, мне нужно перезапустить приложение, чтобы оно запускало курсор для получения данных из базы данных и загрузки представлений.

Я понял, что основная проблема — это разные списки в адаптере и в основной активности. Список из основного действия управляет представлениями, поэтому, когда я обновляю список в адаптере, ничего не происходит.

котлин

private val adapter = Padapter (mainActivityList)

а также

class adapter(private val adapterList:ArrayList)

''' Как мне это сделать ? Должен ли я попытаться вызвать функцию в основном действии?

Я очень ценю любую помощь или предложения, которые вы можете предоставить.

Вы должны добавлять/удалять элементы в списке адаптера (тот же список, прочитанный во время getView). После обновления списка вызовите notifyDataSetChanged() или notifyItemChanged(position), если вы знаете, какая позиция была изменена

W0rmH0le 26.06.2019 01:05

Вы имеете в виду обновить adapterList и notifyDataSetChanged()? это не работает

Andre Andriole 26.06.2019 01:09

Вы должны хранить список только в адаптере, затем активность извлекает список оттуда для отображения в представлении ресайклера. Предполагается, что адаптеры должны иметь данные для отображения представления, если вы сохраняете список в действии, тогда нет смысла

adam yong 26.06.2019 04:45
1
3
300
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я решил это, как предложил Адам Йонг в комментариях. Я сохранил список в адаптере.

Сначала я не знал, как это сделать, но где-то обнаружил, что мне нужно вызывать список в базу данных, думая, что адаптер выглядит следующим образом:

В основной деятельности:

Котлин адаптер.list.addAll(dbHandler!!.cursor()) "'

Другие вопросы по теме