Нужно удалить элемент из SQLite, а затем из RecyclerView
Как сделать так чтобы удались данные и из RecyclerView и из SQLite? Проблема в том, что в SQLite id autoincrement, а в RecyclerView он обновляется каждый раз при удаление из списка.
Ответы (1 шт):
Вы приложили слишком мало информации, чтоб помочь вам более точечно. Но я попробую вам помочь в общих чертах.
База данных и RecyclerView это две совершенно разные вещи. У них абсолютно две разные ответственности, а это означает, что они не должны знать друг о друге ничего. И работа одной никак не должна зависеть от другой.
Исходя из того, что у вас есть такая ошибка смею предположить, что ваш RecyclerView нарушает этот контракт и создаёт вас проблемы.
Каково должно быть взаимодействие между этими двумя сущностями?
Есть база данных, все что она знает это только и только то как сохранить то что ей передали на вход.
Есть RecyclerView, вся ответственность которого это отобразить список переданный ему извне. Он не должен сам ходить в базу данных. Он должен быть максимально тупым. Просто отобразить данные которые ему передаются на вход через метод вроде такого:
public void update(List items) { this.items = items; notifyDataSetChanged (); }
Получать и подготавливать ваши данные вы должны за пределами вашего RecyclerView и просто передавать новые данные в адаптер в метод
update().
Хорошо бы даже чтоб сама View (Activity, Fragment) ничего не знала о базе данных. Но это выходит за рамки ответа. Но я советую вам прочесть про паттерны MVP, MVVM.