RecyclerView实现单选

时间:2024-03-21 10:00:04

现在大多数的app里面都有单项选择的功能,之前自己也做过,只不过现在用的时候又忘记了。。所以现在自己记录一下,下次忘记也好查看

布局是这样的;

RecyclerView实现单选

而ChexkBox里面的android:enabled="false",是为了不让点击,只让点击整个item来改变box的状态。

第一步:先new一个list对象,里面只存放唯一一个被选择的checkbox的下标:RecyclerView实现单选

第二步:在apdater里面的onBindViewHolder里面首先判断一下集合里面存的数值是不是当前的item,是的话就让显示选择,

这样做是为了当你选择第一个之后,在点击第二个item的时候,第一个还是被选择的状态,下面会说到

RecyclerView实现单选

第三步最关键的一步:在item点击事件中先判断当前点击的item的下标在不在集合里面,如果在就把当前的item设置不可点击,因为是单选所以只让点击其他item来取消当前item。如果不在集合里面就把当前的集合清空,然后把当前的下标添加进去,当前的box设为已选择状态,这样当选择一个item就先清空在添加,保持了集合里面只有一个item,最后在点击事件中更新adapter。

RecyclerView实现单选

这样第二步的判断就有了效果,每次点击都会清空集合,然后更新,始终保持一个单选

ok结束,下次在忘记就好找了。。。