未解决的参考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) } ) } } ... ... }
holderView
和holderView
的变量已经在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