RecyclerView.OnItemClickListener与在recyclerView的视图中实现onClickListener?

时间:2018-02-24 09:56:22

标签: android android-recyclerview kotlin onclicklistener

使用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()
        }
    }
}

而不是使用在https://stackoverflow.com/a/26196831

上演示的RecyclerView.OnItemClickListener()

1 个答案:

答案 0 :(得分:2)

你的方式是正确的。 ViewHolder是RecyclerViews模式的必需部分。它也是设置OnClickListener的一个方便的地方,因为它可以访问适配器和视图。 请查看Google提供的此example

此外,使用RecyclerView.OnItemClickListener,如评论中提到的@Niranjan,将不会提供有关单击哪个按钮或视图(在项目中)的任何线索。