如何在MVP中将适配器与Presenter连接?

时间:2016-08-09 19:52:43

标签: android adapter mvp

在RecyclerView中,我有一个ViewHolder与VideoView和Button"喜欢"与国家(选定与否)。

My Presenter有一个方法可以更新" Like"模型中的状态 - VideoEntity。 在回调中,我需要更新View form Presenter,因此我调用了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); }
}

1 个答案:

答案 0 :(得分:6)

一个viewHolder的一位演示者。 我在这里找到了解决方案:https://github.com/remind101/android-arch-sample