如何将数据从1个视图持有者传递到其他视图持有者

时间:2019-04-03 18:52:48

标签: android android-layout android-recyclerview

我有一个Maybe,其中包含2个recycler view

一个用于标题,另一个用于其他项目。

第二个视图持有器的每一行都有一个复选框。当用户单击复选框时,我想更新view holders

上的计数器

我尝试从header's view holder.调用HeaderViewHolder,但由于ListViewHolder消息而崩溃。

我有什么办法可以将数据从1个视图持有者传递给其他人。

2 个答案:

答案 0 :(得分:2)

更新counter中的model/pojo,然后更新notifyItemChanged(position)

 headerModel.setCounter(updatedCounter);
 notifyItemChanged(headerPosition); // ideally should be 0

答案 1 :(得分:1)

  1. 您可以将HeaderViewHolder实例和计数器保存在Adapter中。
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
    }
}