Kotlin适配器中的ViewHolder中的SetOnClickListener

我正在尝试在Kotlin中编写我的第一个RecyclerView自定义适配器。 每个View都非常简单,它是一个带有图片+名称的CardView

我面临两个问题:

错误1 – fun bindItems给我错误,当我尝试以下指定名称:

 // THIS DOES GIVE ME ERROR, IT MARKS txvW_recycItem_userName IN RED itemView.txvW_recycItem_userName = user.name // HOWEVER THIS WORKS val tvw_name = itemView.findViewById(R.id.txvW_recycItem_userName) as TextView tvw_name.text = user.name 

错误2 – onBindViewHolder不允许我添加这样一个监听器:

 holder.bindItems(user[position]) holder.setOnClickListener{ //do whatever } 

这里是适配器的完整代码:

  class CustomRecyclerAdapter(var user : ArrayList) : RecyclerView.Adapter(){ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CustomRecyclerAdapter.MyViewHolder { val v = LayoutInflater.from(parent.context).inflate(R.layout.recycler_item, parent, false) return MyViewHolder(v) } override fun onBindViewHolder(holder: MyViewHolder, position: Int){ holder.bindItems(user[position]) } override fun getItemCount() = user.size class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { fun bindItems(user : Users){ // HERE IT IS THE LINE DESCRIBED ON ERROR 1 //itemView.txvW_recycItem_userName = user.name val image = itemView.findViewById(R.id.imgvW_mainPic) as ImageView val tvw_name = itemView.findViewById(R.id.txvW_recycItem_userName) as TextView tvw_name.text = user.name image.setImageResource(user.image) } } } 

—->编辑<—-

我不知道这是否是我的错误2的答案,但是…下面似乎工作:

 holder.itemView.setOnClickListener({ // do something here }) 

我正在像这样在适配器中使用setOnClickListener:

 holder.itemView.setOnClickListener(){ } 

它完全为我工作。