recycleView长按显示删除按钮逻辑及部分代码

问题:想要实现recycleview长按后显示删除图标,但是仅仅能实现当前item删除图标的显示,无法实现所有的item都出现删除图标,错误实现的逻辑是直接在itemView长按事件里面这个改变图片的显示与隐藏状态,这里仅能实现当前item删除图标的显示,所以是行不通的!我这里的代码背景是使用room数据库存数据,然后读取使用recycleview显示,然后在长按,所有的item显示删除图标。本文就记录一下这个问题,增加自己的记忆。
下面就说一下实现逻辑以及部分代码

第一步在RecycleView的adapter数据集合中存放一个变量,也就是在实体类中新增一个布尔变量字段flag 这里的布尔值flag为false,也就是在构造数据集合的时候存入false

//实体--我这里的实体是一个room数据库的实体
@Entity(tableName = "tbl_city_record")
data class Record(var cityName:String,var time: String,var falg: Boolean){
    @PrimaryKey(autoGenerate = true)
    var id:Long=0
}

//构造的时候传入flase
val recordBean = Record(city, getTime(),false)

这里的第二第三步我都是在onBindViewHolder方法中写的
第二步item长按事件中,使集合中的布尔变量改变使其为true 也就是遍历集合 改变record.flag=true,不要忘记notifyDataSetChanged()刷新

holder.itemView.setOnLongClickListener{
                for (record in list) {
                    record.falg=true
                }
                notifyDataSetChanged()
            return@setOnLongClickListener true
        }

第三步判断布尔值如果为true就让删除图标显示,否则就隐藏

 if(list.get(position).falg==true){
           holder.imgDelete.visibility=View.VISIBLE
        }else{
            holder.imgDelete.visibility=View.GONE

        }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值