为什么我在setOnClickListener中得到未解决的引用?

时间:2018-08-31 12:07:28

标签: android android-recyclerview kotlin

我有此代码:

class ViewHolder(view: View) : RecyclerView.ViewHolder(view){

    fun bindItem(items: Item) {
        itemView.name.text = items.name
        Glide.with(itemView.context).load(items.image).into(itemView.image)

        view.setOnClickListener {
            view.context.startActivity(view.context.intentFor<DetailsActivity>("image" to items.image, "name" to items.name))
        }
    }
}

哪个一直给我一个错误,显示未解决的引用:视图。 如何解决呢?谢谢。

1 个答案:

答案 0 :(得分:0)

发生这种情况是因为您没有在班级内对此view进行任何引用,而您在Java术语中所做的只是super(view)调用。您可以改为访问RecyclerView.ViewHolder#itemView字段:

fun bindItem(items: Item) {
    itemView.name.text = items.name
    Glide.with(itemView.context).load(items.image).into(itemView.image)

    itemView.setOnClickListener {
        itemView.context.startActivity(itemView.context.intentFor<DetailsActivity>("image" to items.image, "name" to items.name))
    }
}