[英]What is the best way to access members of outer class in the inner class of RecyclerView adapter in Kotlin?
我正在Android应用程序中创建第一个Kotlin类。 通常,出于记录目的,我有一个名称为TAG的常量。 我在RecyclerView适配器中将其定义为:
class MyAdapter(private val dataList: ArrayList<MyData>): RecyclerView.Adapter<MyAdapter.ViewHolder>() {
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()中访问变量TAG
您可以将ViewHolder类设置为inner
使用companion object
:
class MyAdapter(private val dataList: ArrayList<String>) :
RecyclerView.Adapter<MyAdapter.ViewHolder>() {
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
在文件的顶层。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.