2016-08-09 4 views
3

В RecyclerView у меня есть ViewHolder с VideoView и кнопка «Like» с состоянием (выбрано или нет).Как подключить адаптер с презентатором в MVP?

У моего презентатора есть способ, который обновит статус «Like» в модели - VideoEntity. В обратном вызове мне нужно обновить форму представления Presenter, поэтому я вызываю getView(). UpdateItem (объект VideoEntity). После этого я должен найти позицию объекта 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); } 
} 

ответ

3

Один ведущий для одного viewHolder. Я нашел решение здесь: https://github.com/remind101/android-arch-sample

+0

для тех, кто не может ждать https://github.com/remind101/android-arch-sample/tree/master/app/src/main/java/com/remind101/archexample –

+0

Где вы делаете сетевой запрос для своих данных vieholder со связанным профилем github? – Rafa