我在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答案 0 :(得分:2)
您可以将ViewHolder类设置为inner
答案 1 :(得分:1)
使用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
}
}
答案 2 :(得分:1)
你也可以把
private val TAG: String? = MyAdapter::class.simpleName
在文件的顶层。