我是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) }
)
}
}
...
...
}
变量onClickListener
和holderView
已在Adapter类中声明,但在我在另一个类(在Adapter类中定义)中访问它时会出现此错误:
未解析的参考:variable_name
谁能告诉我我做错了什么?
答案 0 :(得分:4)
在Kotlin中,您可以直接从嵌套类访问外部类的成员。
为了访问外部类成员,您需要将您的类设置为 inner 类,如下面的snippt所示。
class OuterClass{
var name="john"
inner class InnerClass{
//....
}
}
所以,你需要在这里定义 MyViewHolder 类内部类MyViewHolder
上查看相同内容答案 1 :(得分:1)
嵌套的分类无法访问外部类成员。
让您的MyViewHolder
成为inner
课程。
在此处阅读更多https://kotlinlang.org/docs/reference/nested-classes.html