нерешенная ссылка kotlin variable

Я новичок в 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

Может ли кто-нибудь сказать мне, что я делаю неправильно?

    В 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

    Intereting Posts
    Вызов функции в фрагменте представления пейджера из активности Как удалить строки в SQLite с несколькими аргументами, использующими Anko? Пояснение к литералу функции с приемником в Котлине Kotlin Android View Binding: findViewById vs Butterknife vs Kotlin Android Extension Kotlin – Как рекурсивно назвать лямбда-функцию Фильтр по свойствам enum class Kotlin Kotlin + Dagger2: не может быть предоставлен без конструктора @Inject или из метода @ Provides- или @ Produces-annotated Почему я должен возвращать Unit.INSTANCE при реализации на Java функции Kotlin, которая возвращает Unit? Инициализация массивов в котлине Котлин: сумма BigDecimal в списке RxKotlin – Single.just () не выделяется при подписке на TestSubscriber Как получить правильный тип при возврате шаблона <T?> Из статической функции с нулевым значением Двухмерный общий поставщик массивов Как идиоматически преобразовать типы NULL в Котлин? Невозможно получить доступ к переменной из внутреннего класса: Kotlin android