今天给大家分享下RecyclerView实现单选的三种方式,这三种方式都需要一个标识位,mPosition
单选的话建议大家不要使用checkBox(android不同版本checkBox显示的不一样哦),使用一个ImageView代替是最理想的
在Adapter里面首先初始化我们的标识位 int mPosition=-1;
第一种方式就是刷新列表,使用notifyDataSetChanged();
下面贴下代码
if (mPosition == position) { myviewholders.mIvCheck.setImageResource(R.mipmap.icon_no); mPosition = -1; } else if (mPosition != position) { myviewholders.mIvCheck.setImageResource(R.mipmap.icon); mPosition = position; notifyDataSetChanged(); }
这种实现的方式简单粗暴,但是占用内存比较多,每改变一次选择都会从走onBindViewHolder一个屏幕条目个数次
第二种方式是刷新单个的Item事件,使用notifyItemChanged(positio)
代码如下
<