android kotlin-如何将单击侦听器添加到RecyclerView适配器 [英] android kotlin -how to add click listener to RecyclerView adapter

查看:169
本文介绍了android kotlin-如何将单击侦听器添加到RecyclerView适配器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是kotlin的新手,这是我的适配器代码,可以正常工作,并且我没有问题,现在,我需要为其实现点击侦听器,这是我的代码:

I'm new in kotlin ,this is my adapter code , it works find and I've no problem , now ,I need to implement click listener for it , here is my code :

class CategoryAdapter(val context: Context,val list: List<CategoryItems>): RecyclerView.Adapter<CategoryAdapter.ViewHolder>() {
var typeface: Typeface? = Func.getTypeFace(context)

override fun onBindViewHolder(holder: ViewHolder, position: Int) {
    var catRow=list.get(position)

    holder?.tvTitle.text = catRow.name
    holder?.tvTitle.setTypeface(typeface)
    Glide.with(context).load(Const.BaseUrl+"Opitures/"+  catRow.icon_name).into(holder?.imgCat);
}

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
    val v = LayoutInflater.from(parent?.context).inflate(R.layout.category_item, parent, false)
    return ViewHolder(v);
}

override fun getItemCount(): Int {
    return list.size
}

class ViewHolder(itemView: View): RecyclerView.ViewHolder(itemView){
    val tvTitle = itemView.findViewById<TextView>(R.id.tv_cat_title)
    val imgCat = itemView.findViewById<ImageView>(R.id.img_cat)
}
}

我想添加点击侦听器,我曾经在实现点击侦听器的viewholder类中这样做

I want to add click listener, I used to do it in viewholder class where I implement click listener

我如何在Kotlin中做到这一点?我有很多方法,但没有成功

how can I do it in kotlin , ? i've tied so many ways but no success

推荐答案

var onItemClick: ((pos: Int, view: View) -> Unit)? = null

inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), View.OnClickListener {
    override fun onClick(v: View) {
        onItemClick?.invoke(adapterPosition, v)
    }
    val tvTitle = itemView.findViewById<TextView>(R.id.tv_cat_title)

    init {
        itemView.setOnClickListener(this)
    }
}

在您的活动中,只需实现点击侦听器

and in your activity just implement click listener

adapter.onItemClick = { pos, view ->  

}

这篇关于android kotlin-如何将单击侦听器添加到RecyclerView适配器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆