无法从innerclass访问变量:Kotlin android

我是Android的Kotlin开发新手。 在这里我试图从它的内部类访问一个类中定义的变量,如下所示。

class MainActivity : AppCompatActivity() { var frags: MutableList<Fragment> = mutableListOf() //.............onCreate and other methods .... internal class CustAdapter(var arrayList: ArrayList<NavigationData>) : RecyclerView.Adapter<CustAdapter.MyViewHolder>() { override fun onBindViewHolder(holder: MyViewHolder?, position: Int) { holder!!.bindItems(arrayList[position]) } override fun getItemCount(): Int { return arrayList.size } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CustAdapter.MyViewHolder { val v = LayoutInflater.from(parent.context).inflate(R.layout.navigation_item, parent, false) return MyViewHolder(v) } class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { fun bindItems(data: NavigationData) { itemView.setOnClickListener { frags.add(BoardFrag()) ///// here i'm getting error "unresolved symbol" } } } } } 

在内部类MyViewHolder内部,它不允许我访问任何外部作用域的变量。

即使我无法访问从内部类方法内部import kotlinx.android.synthetic.main.activity_main.*视图ID。

我能够在java以这种方式访问​​变量,但我已经阅读了很多关于stackoverflow的问题,但我还没有得到答案。

你应该在你的适配器中使用inner修饰符。

这个修饰符使得内部类可以访问外部类的成员

参考: https : //kotlinlang.org/docs/reference/nested-classes.html