Я хочу создать интерфейс между адаптером и держателем представления (этот держатель представления является внутренним классом другого адаптера), чтобы я мог обновить текстовое представление (номер). Как я могу это сделать?
Подробно:
У меня есть два вида корзины (основной список Recycler View и Sub List Recycler View, горизонтально расположенные, как показано на рис.), один из которых имеет номер (как один из его элементов), а другой - с флажком (как его элемент).
У меня есть два адаптера FilterMainListAdapter
и FilterSubListAdapter
с держателями представления FilterMainListViewHolder
и FilterSubListViewHolder
, заполняющими поля.
Когда в представлении Recycler Sub List установлены флажки, я хочу, чтобы соответствующий номер в представлении Recycler основного списка обновлялся.
Для этого я использую и Interface.
public interface ChangeFilterMainNumber {
void OnChangeFilterMainNumberListener(int totalCheckedNumber);
}
У меня есть метод onClick для флажка внутри FilterSubListViewHolder
, и я пытаюсь отправить общее число флажков с флажками следующим образом.
changeFilterMainNumber.OnChangeFilterMainNumberListener(totalCheckedNumber);
После этого я реализую ChangeFilterMainNumber
интерфейс внутри FilterMainListViewHolder
public class FilterMainListViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener,
ChangeFilterMainNumber {...}
Но как я могу определить этот интерфейс внутри FilterSubListAdapter
?
changeFilterMainNumber = ???;
[Если это активность, можно определить такой интерфейс changeFilterMainNumber = (ChangeFilterMainNumber) context
внутри конструктора по умолчанию FilterSubListAdapter
. Но как насчет держателя представления, который является внутренним классом другого адаптера?]
или есть лучший подход к поиску решения моей проблемы, кроме этого?
Обновление: код можно посмотреть здесь https://github.com/gSrikar/FilterScreen