如何在 MVP 中连接 Adapter 和 Presenter?

How to connect Adapter with Presenter in MVP?

在 RecyclerView 中,我有一个 ViewHolder 和 VideoView 以及 Button "Like" 和状态(选择与否)。

我的 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); }
}

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