如何在 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
在 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