有RecyclerViewAdapter显示项目(此项目已在数据库中映射)。
RecyclerViewAdapter包含对Presenter的引用以加载项目。它还包含带有项ID的ArrayList。
如何使用Rx加载项目?应该如何看待onBindViewHolder方法的正确代码?
现在看起来像:
List<Long> ItemIds;
Presenter presenter;
public void onBindViewHolder(ViewHolder holder, int position) {
Long itemId = ItemIds.get(position);
Item item = presenter.getItemById(itemId); //loading from DB
holder.setContent(item);
}
P.S。
答案 0 :(得分:2)
首先,我必须提一下,只要您想从数据库加载数据,您就必须为I / O速度不足导致的滞后UI做好准备。
我不知道您的数据有多大,但在最坏的情况下,您可以逐页将其加载到内存中。但是,Android设备不适合大数据管理。
顺便说一下,创建可观察的内部适配器(即查看)并不是一个好主意,必须在您的业务逻辑中创建它们(例如 API服务 / DB 或 Presenter 图层。
在这个回购中,你可以找到一个很好的Android应用程序样本,由 MVP 开发,使用 Ormlite 数据库混搭使用 RxJava 和匕首强>:
我希望它有所帮助:)