Far*_*eel 13 android android-recyclerview android-architecture-components
目前我正在使用Android架构组件进行App开发一切都与分页库一起工作现在我想删除recyclerview项目使用PagedListAdapter来填充这个我们需要添加数据源并且从数据源列表正在使用LiveData更新我想要删除列表notifyItemRemoved()中的项目正在从PagedList工作我收到此异常:
java.lang.UnsupportedOperationException
java.util.AbstractList.remove(AbstractList.java:638)
Run Code Online (Sandbox Code Playgroud)
由于您不能直接修改您拥有的数据,PagedList因为我认为它是不可变的,因此在这种情况下实现删除项目的关键是在代码中的某个位置维护一个支持数据集,该数据集代表了到目前为止您已收到的所有数据。一个ArrayList为我工作。
当您要删除项目时,请将其从支持数据集中删除,然后在数据源上调用invalidate。这将触发loadInitial()调用,您可以在其中将后备数据集传递给callback.onResult()函数。您PagedListAdapter将使用DiffUtil.ItemCallback您提供的来明智地确定其数据已更新,并将相应地进行更新。
本教程帮助我了解了使用分页库时正确删除项目的正确流程:https : //medium.com/@FizzyInTheHall/implementing-swipe-to-delete-with-android-architecture-components- a95165b6c9bd
与该教程相关的仓库可以在这里找到:https : //gitlab.com/adrianhall/notes-app
小智 0
Adapter.notifyItemRemoved(position);
appDatabase.userDao().deleteUser(user);
这对我来说是工作!
| 归档时间: |
|
| 查看次数: |
6930 次 |
| 最近记录: |