Как передать данные от одного держателя вида другому держателю вида - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть recycler view, который содержит 2 view holders.

Один предназначен для заголовка, а другой - для других.

У второго держателя просмотра есть флажок в каждом ряду. Когда пользователь нажимает на флажок, я хочу обновить счетчик на header's view holder.

Я пытался позвонить HeaderViewHolder с ListViewHolder, но он вылетал с сообщением cannot be cast to.

Есть ли способ передать данные от одного держателя просмотра другому.

Ответы [ 2 ]

2 голосов
/ 03 апреля 2019

Обновите counter в model/pojo, а затем notifyItemChanged(position)

 headerModel.setCounter(updatedCounter);
 notifyItemChanged(headerPosition); // ideally should be 0
1 голос
/ 03 апреля 2019
  1. Вы можете сохранить HeaderViewHolder экземпляр и счетчик внутри адаптера.
private HeaderViewHolder headerHolder;
private int counter = 0;
  1. Инициализировать headerHolder внутри onBindViewHolder метода и установить OnClickListener для флажка.
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
    if (holder instanceof HeaderViewHolder) {
        headerHolder = (HeaderViewHolder) holder;
    }
    if (holder instanceof ListViewHolder) {
        // set listener and don't forget to call "counter++"
        // and "headerHolder.setTitle("title you want")" inside it
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...