【原创】在Activity中设置RecyclerView的子控件监听

RecyclerView不能直接在Activity中获取item对象,需要通过委托模式,在适配中设置接口实现,具体步骤如下:

在Adapter中添加一个接口

    interface OnRecyclerViewItemClick<T>{
        fun onItemClick(view: View?, t: BluetoothDevice?, position: Int)
    }

然后在onBindViewHolder中对子控件进行监听

        holder.btnEnable.setOnClickListener {
            mOnRecyclerViewItemClick?.onItemClick(holder.btnEnable,device,position)
        }

这里以一个Button按键为例,同时还需要在adapter中申明一个接口对象

    var mOnRecyclerViewItemClick: OnRecyclerViewItemClick<String>? = null

最后在Acticity中通过适配器重写接口就可

    scanAdapter.mOnRecyclerViewItemClick = object :OnRecyclerViewItemClick<String> {
      override fun onItemClick(view: View?, t: BluetoothDevice?, position: Int) {
          when(view?.id){
              R.id.devEnable -> {
                  //TODO
                  }
              }
          }
      }
  }
posted @ 2021-04-29 09:24  Tomas_L  阅读(277)  评论(0编辑  收藏  举报