RecyclerView用CheckBox实现单选
        【摘要】     关键代码: 
	// 记录选中的Item private int selectedPosition = -1; @Override public void onBindViewHolder(@NonNull final ItemViewHolder holder, final int position) { holder.mTV.setText(list.get(pos...
    
    
    
    关键代码:
	// 记录选中的Item private int selectedPosition = -1; @Override public void onBindViewHolder(@NonNull final ItemViewHolder holder, final int position) { holder.mTV.setText(list.get(position).getName()); holder.mCB.setChecked(list.get(position).isChecked()); // 要实现单选的话,就要选择点击事件,然后在点击事件中根据选择状态做变化,不要选用setOnCheckedChangeListener() holder.mCB.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { holder.mCB.post(new Runnable() { @Override public void run() { if(selectedPosition != -1){ list.get(selectedPosition).setChecked(false); // notifyItemChanged必须在UI线程中执行,否则会报: // java.lang.IllegalStateException: Cannot call this method // while RecyclerView is computing a layout or scrolling notifyItemChanged(selectedPosition); } list.get(position).setChecked(holder.mCB.isChecked()); if(holder.mCB.isChecked()){ selectedPosition = position; }else{ selectedPosition = -1; } } }); } }); }
  
 - 1
 - 2
 - 3
 - 4
 - 5
 - 6
 - 7
 - 8
 - 9
 - 10
 - 11
 - 12
 - 13
 - 14
 - 15
 - 16
 - 17
 - 18
 - 19
 - 20
 - 21
 - 22
 - 23
 - 24
 - 25
 - 26
 - 27
 - 28
 - 29
 - 30
 - 31
 - 32
 - 33
 - 34
 - 35
 - 36
 
对CheckBox的事件处理应该用OnClickListener,然后在点事件里处理CheckBox的选中逻辑。
文章来源: blog.csdn.net,作者:WongKyunban,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_40763897/article/details/107888648
        【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
            cloudbbs@huaweicloud.com
        
        
        
        
        - 点赞
 - 收藏
 - 关注作者
 
            
           
评论(0)