android kotlin - как добавить прослушиватель кликов к адаптеру RecyclerView - PullRequest
0 голосов
/ 16 января 2019

Я новичок в kotlin, это мой код адаптера, он работает, найдите, и у меня нет проблем, теперь мне нужно реализовать прослушиватель кликов для него, вот мой код:

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)
}
}

Я хочу добавить прослушиватель кликов, я делал это в классе виджетов, где я реализую прослушиватель кликов

как я могу это сделать в kotlin,? я связал так много способов, но безуспешно

1 Ответ

0 голосов
/ 16 января 2019
lateinit var mClickListener: ClickListener

fun setOnItemClickListener(aClickListener: ClickListener) {
    mClickListener = aClickListener
}

interface ClickListener {
    fun onClick(pos: Int, aView: View)
}

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

    init {
        itemView.setOnClickListener(this)
    }
}

и в своей деятельности просто реализуйте прослушиватель кликов

adapter.setOnItemClickListener(object : Adapter.ClickListener {
                            override fun onClick(pos: Int, aView: View) {

   }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...