kotlin中使用RecyclerView

布局

RecyclerView布局

<androidx.recyclerview.widget.RecyclerView
                android:id="@+id/rv_list"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                tools:itemCount="4"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/wx_bg"
                android:layout_marginStart="30dp"
                android:layout_marginEnd="30dp"
                tools:listitem="@layout/list_item"/>      //这里写列表中单个布局

RecyclerView 适配器

data存储bean的list,R.layout.list_item是上面的list布局文件,R.id.amount是list布局中的子view

class BaseAdapter(data: MutableList<Amount>) : BaseQuickAdapter<Amount, BaseViewHolder>(R.layout.list_item, data){
    override fun convert(holder: BaseViewHolder, item: Amount) {
        holder.setText(R.id.amount,item.amount)
        holder.setText(R.id.remark,item.remark)
        holder.setText(R.id.doorsill,item.doorsill
    }
}

给RecyclerView设置属性

var adapter = BaseAdapter(list)     //将数据放入适配器中
binding.rvList.adapter=  adapter    // 创建适配器并给RecyclerView适配器赋值
binding.rvList.layoutManager = GridLayoutManager(this,3)   //设置RecyclerView的布局管理器 ,这里设置的是网格布局,3列

设置适配器监听器

adapter.setOnItemClickListener { adapter, view, position ->
           if (position == 0 && AdConfig.banVideo) {
                ToastUtils.showToast("禁止${list[position].substance}展示广告")
                return@setOnItemClickListener
            }
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要在你的RecyclerViewAdapter实现一个接口,该接口用于在点击RecyclerView的子项时告知Activity或Fragment。例如: ```kotlin interface OnItemClickListener { fun onItemClick(position: Int) } ``` 然后,在你的Adapter添加一个方法,用于设置该接口: ```kotlin class MyAdapter(private val listener: OnItemClickListener) : RecyclerView.Adapter<MyAdapter.ViewHolder>() { //... fun setOnItemClickListener(listener: OnItemClickListener) { this.listener = listener } //... } ``` 现在,在你的ViewHolder为子项设置点击事件,当点击子项时,调用OnItemClickListener接口的onItemClick方法,并将子项的位置作为参数传递给Activity或Fragment: ```kotlin class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { init { itemView.setOnClickListener { val position = adapterPosition if (position != RecyclerView.NO_POSITION) { listener.onItemClick(position) } } } //... } ``` 接下来,在你的Activity或Fragment实现OnItemClickListener接口,并在onCreate方法RecyclerViewAdapter设置该接口: ```kotlin class MyActivity : AppCompatActivity(), OnItemClickListener { private lateinit var myAdapter: MyAdapter override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_my) myAdapter = MyAdapter(this) recyclerView.adapter = myAdapter myAdapter.setOnItemClickListener(this) } override fun onItemClick(position: Int) { // 在这里删除数据库的记录 } //... } ``` 最后,在onItemClick方法使用你的数据库的API删除该记录,例如: ```kotlin override fun onItemClick(position: Int) { val item = myAdapter.getItem(position) val db = MyDatabaseHelper(applicationContext).writableDatabase db.delete("my_table", "id = ${item.id}", null) myAdapter.removeItem(position) } ``` 其,getItem和removeItem方法用于获取和删除RecyclerView的指定位置的子项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值