在Kotlin的RecyclerView适配器的内部类中访问外部类的成员的最佳方法是什么?

我在我的Android应用程序中创建了我的第一个Kotlin类。 通常,为了记录目的,我有一个名字TAG的常量。 我在我的RecyclerView适配器中将其定义为:

class MyAdapter(private val dataList: ArrayList): RecyclerView.Adapter() { private val TAG: String? = MyAdapter::class.simpleName . . . class ViewHolder(v: View) : RecyclerView.ViewHolder(v), View.OnClickListener { fun bindData(){ //some statements } override fun onClick(p0: View?) { //I want to use the above defined TAG here as I would do in Java: // Log.d(TAG, ""); } } } 

我无法访问onClick()中的variablesTAG

您可以将ViewHolder类设置为inner

使用companion object

 class MyAdapter(private val dataList: ArrayList) : RecyclerView.Adapter() { class ViewHolder(v: View) : RecyclerView.ViewHolder(v), View.OnClickListener { fun bindData() { //some statements } override fun onClick(p0: View?) { Log.d(TAG, "") } } companion object { val TAG: String? = MyAdapter::class.simpleName } } 

你也可以放

 private val TAG: String? = MyAdapter::class.simpleName 

在文件的顶层。