Я пытаюсь обновить данные в recyclerview из адаптера, функции внутри адаптера для обновления.
Он работает правильно, и данные добавляются в базу данных, но не обновляют представления, мне нужно перезапустить приложение, чтобы оно запускало курсор для получения данных из базы данных и загрузки представлений.
Я понял, что основная проблема — это разные списки в адаптере и в основной активности. Список из основного действия управляет представлениями, поэтому, когда я обновляю список в адаптере, ничего не происходит.
котлин
private val adapter = Padapter (mainActivityList)
а также
class adapter(private val adapterList:ArrayList)
''' Как мне это сделать ? Должен ли я попытаться вызвать функцию в основном действии?
Я очень ценю любую помощь или предложения, которые вы можете предоставить.
Вы имеете в виду обновить adapterList и notifyDataSetChanged()? это не работает
Вы должны хранить список только в адаптере, затем активность извлекает список оттуда для отображения в представлении ресайклера. Предполагается, что адаптеры должны иметь данные для отображения представления, если вы сохраняете список в действии, тогда нет смысла
Я решил это, как предложил Адам Йонг в комментариях. Я сохранил список в адаптере.
Сначала я не знал, как это сделать, но где-то обнаружил, что мне нужно вызывать список в базу данных, думая, что адаптер выглядит следующим образом:
В основной деятельности:
Котлин адаптер.list.addAll(dbHandler!!.cursor()) "'
Вы должны добавлять/удалять элементы в списке адаптера (тот же список, прочитанный во время getView). После обновления списка вызовите notifyDataSetChanged() или notifyItemChanged(position), если вы знаете, какая позиция была изменена