RecyclerView不能直接在Activity中获取item对象,需要通过委托模式,在适配中设置接口实现,具体步骤如下:
interface OnRecyclerViewItemClick<T>{
fun onItemClick(view: View?, t: BluetoothDevice?, position: Int)
}
holder.btnEnable.setOnClickListener {
mOnRecyclerViewItemClick?.onItemClick(holder.btnEnable,device,position)
}
这里以一个Button按键为例,同时还需要在adapter中申明一个接口对象
var mOnRecyclerViewItemClick: OnRecyclerViewItemClick<String>? = null
scanAdapter.mOnRecyclerViewItemClick = object :OnRecyclerViewItemClick<String> {
override fun onItemClick(view: View?, t: BluetoothDevice?, position: Int) {
when(view?.id){
R.id.devEnable -> {
//TODO
}
}
}
}
}
【原创】在Activity中设置RecyclerView的子控件监听
原文:https://www.cnblogs.com/slf-L/p/14716674.html