使用RecyclerView.OnItemClickListener而不是在recyclerView的视口中实现onClickListener有什么优势吗?
我在Recycler视图中处理click的方式是在ViewHolder上实现onClickListener,如下所示
class MyViewHolder(itemView : View) : RecyclerView.ViewHolder(itemView), View.OnClickListener{
val my_view : View
init {
my_view = itemView.findViewById(R.id.my_view_id)
my_view.setOnClickListener(this)
}
override fun onClick(v: View?) {
when (v?.id){
R.id.my_view_id -> doSomething()
}
}
}
上演示的RecyclerView.OnItemClickListener()
答案 0 :(得分:2)
你的方式是正确的。 ViewHolder是RecyclerViews模式的必需部分。它也是设置OnClickListener的一个方便的地方,因为它可以访问适配器和视图。 请查看Google提供的此example。
此外,使用RecyclerView.OnItemClickListener,如评论中提到的@Niranjan,将不会提供有关单击哪个按钮或视图(在项目中)的任何线索。