在RecyclerView中,我有一个ViewHolder,其中包含VideoView和带有状态(选定或未选定)的按钮“Like”。
我的Presenter有一个方法,将在模型VideoEntity中更新“Like”状态。在回调中,我需要从Presenter更新View,因此我调用getView().updateItem(VideoEntity entity)。完成后,我应该找到recyclerView实体位置并使其无效。因此,我想避免这种情况。
在经典架构中,我可以从ViewHolder调用某些方法,在那里获取某些回调并更新更改的数据。
如何将此伪代码迁移到MVP模式?
我的Presenter有一个方法,将在模型VideoEntity中更新“Like”状态。在回调中,我需要从Presenter更新View,因此我调用getView().updateItem(VideoEntity entity)。完成后,我应该找到recyclerView实体位置并使其无效。因此,我想避免这种情况。
在经典架构中,我可以从ViewHolder调用某些方法,在那里获取某些回调并更新更改的数据。
如何将此伪代码迁移到MVP模式?
@Override
public void onBindViewHolder(ContainerViewHolder holder, int position) {
...
rx.subscribe(result -> holder.update(result));
}
@Override
public void onViewRecycled(ContainerViewHolder holder) {
if (haveBackgroundRequests) { rx.unsubscribe(holder); }
}