未解决的参考kotlin变量

我是新来的kotlin。 我在我的适配器中使用以下代码:

class TravelListAdapter(private var context: Context) : RecyclerView.Adapter<TravelListAdapter.MyViewHolder>() { lateinit var onClickListener: TravelListAdapterListener lateinit var holderView: View interface TravelListAdapterListener { fun onClickListener(v: View, position: Int) } class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { private lateinit var txtLabel: TextView fun MyViewHolder(view: View) { holderView = view // holderView shows error // in line below, holderView and onClickListener shows error holderView.setOnClickListener( View.OnClickListener { v -> onClickListener.onClickListener(v, adapterPosition) } ) } } ... ... } 

holderViewholderView的变量已经在Adapter类中声明,但是当我在另一个类(在Adapter类中定义的)中访问它们时发生这个错误:

未解决的参考:variable_name

谁能告诉我我做错了什么?

在Kotlin中,您可以直接从嵌套类访问外部类的成员。

为了访问外部类的成员,你需要使你的类成为下面的snippt中给出的内部类。

 class OuterClass{ var name="john" inner class InnerClass{ //.... } } 

所以,在这里你需要定义你的MyViewHolder类的内部类MyViewHolder

您也可以查看相同的链接https://stackoverflow.com/a/46730214/4083237

嵌套分类不能访问外部类成员

让你的MyViewHolder成为一个inner类。

在这里阅读更多https://kotlinlang.org/docs/reference/nested-classes.html