No puedo contactar a ningún miembro de la class de una class anidada en Kotlin

Quiero acceder a un miembro de la class MainFragment de la class PersonAdapter, pero ninguno de ellos está disponible. Traté de hacer que las classs y los miembros fueran públicos y privados también, pero hasta ahora nada funcionó. Creo que me falta algo obvio, pero no puedo entenderlo.

class MainFragment : Fragment() { lateinit var personAdapter: PersonAdapter lateinit var personListener: OnPersonSelected private var realm: Realm by Delegates.notNull() lateinit var realmListener: RealmChangeListener<Realm> override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { val v = inflater.inflate(R.layout.fragment_main, container, false) return v } class PersonAdapter() : RecyclerView.Adapter<ViewHolder>() { var localPersonList = personList override fun onBindViewHolder(holder: ViewHolder, position: Int) { holder.bindItems(localPersonList[position]) holder.itemView.setOnClickListener { Toast.makeText(context, "click", Toast.LENGTH_SHORT).show() //I want to reach personListener from here } } override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): ViewHolder { val v = LayoutInflater.from(parent!!.context).inflate(R.layout.person_list_item, parent, false) return ViewHolder(v) } }} 

    En Kotlin, las classs anidadas no pueden acceder a la instancia de class externa de forma pnetworkingeterminada, al igual que las static class anidadas en Java.

    Para hacer eso, agregue el modificador inner a la class anidada:

     class MainFragment : Fragment() { // ... inner class PersonAdapter() : RecyclerView.Adapter<ViewHolder>() { // ... } } 

    Ver: Clases anidadas en la reference del lenguaje

    En Kotlin, hay 2 types de classs anidadas.

    1. Clase anidada
    2. Clase interna

    La class anidada no puede acceder al miembro de la class externa.

    Si desea acceder al miembro de la class externa en la class anidada, entonces necesita definir esa class anidada como class interna.

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