将其作为参数传递给类时,表示所需的上下文为空

时间:2018-10-19 07:28:41

标签: android kotlin

对于我的代码,我将其传递给上下文。这在 mainActivity.kt 文件

enter image description here
这是我在构造函数中遇到的错误,我这样称呼它

class ForecastAdapter(val forecast: Forecast, val context: Context) : RecyclerView.Adapter<ForecastData>(){

然后我将其传递给这样的类:

runOnUiThread {
   view.adapter = ForecastAdapter(weather, this)
}

所以我不知道为什么这不适用于上下文。我是Kotlin的新手,也是Android开发的新手,所以我现在有点困惑。

1 个答案:

答案 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)