在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); }
}
答案 0 :(得分:6)
一个viewHolder的一位演示者。 我在这里找到了解决方案:https://github.com/remind101/android-arch-sample