我有一个Maybe
,其中包含2个recycler view
。
一个用于标题,另一个用于其他项目。
第二个视图持有器的每一行都有一个复选框。当用户单击复选框时,我想更新view holders
我尝试从header's view holder.
调用HeaderViewHolder
,但由于ListViewHolder
消息而崩溃。
我有什么办法可以将数据从1个视图持有者传递给其他人。
答案 0 :(得分:2)
更新counter
中的model/pojo
,然后更新notifyItemChanged(position)
headerModel.setCounter(updatedCounter);
notifyItemChanged(headerPosition); // ideally should be 0
答案 1 :(得分:1)
HeaderViewHolder
实例和计数器保存在Adapter中。private HeaderViewHolder headerHolder;
private int counter = 0;
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
}
}