При передаче в качестве параметра в класс говорит, что контекст, который требуется, найден пустым - PullRequest
0 голосов
/ 19 октября 2018

Для моего кода я передаю это для контекста.Это в 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 and Dev, поэтому я немного запутался прямо сейчас.

1 Ответ

0 голосов
/ 19 октября 2018

То, что вы наблюдаете, называется SAM Conversion .В основном вы реализуете Runnable в вашем блоке {}.Поэтому this относится к внутреннему классу, и для доступа к внешнему классу необходимо добавить к нему внешний квалифицированный scope this@MainActivity.

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

Это фактически то же самое, что и

val runnable = Runnable { view.adapter = ForecastAdapter(weather, this@MainActivity) }
runOnUiThread(runnable)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...