对于我的代码,我将其传递给上下文。这在 mainActivity.kt 文件
中class ForecastAdapter(val forecast: Forecast, val context: Context) : RecyclerView.Adapter<ForecastData>(){
然后我将其传递给这样的类:
runOnUiThread {
view.adapter = ForecastAdapter(weather, this)
}
所以我不知道为什么这不适用于上下文。我是Kotlin的新手,也是Android开发的新手,所以我现在有点困惑。
答案 0 :(得分:1)
您正在观察的内容称为SAM Conversion。基本上,您是在Runnable
块中实现{}
。因此,this
引用内部类,并且要访问外部类,您必须向其添加外部qualified范围this@MainActivity
。
runOnUiThread { view.adapter = ForecastAdapter(weather, this@MainActivity) }
这实际上与
相同val runnable = Runnable { view.adapter = ForecastAdapter(weather, this@MainActivity) }
runOnUiThread(runnable)