Ошибка Kotlin: Ожидаемые 2 параметра типов android.widget.CompoundButton !, kotlin.Boolean

У меня ошибка Котлина, говорящая

Expected 2 parameters of types android.widget.CompoundButton!, kotlin.Boolean 

Красная строка squiggly находится на первом { в коде ниже:

  alarmSwitch.setOnCheckedChangeListener(CompoundButton.OnCheckedChangeListener() { fun onCheckedChanged(buttonView: CompoundButton, isChecked: Boolean) { 

Я пытался:

Официальные документы Котлин говорят:

Обозначения для типов платформ

Как упоминалось выше, типы плат не могут быть указаны явно в программе, поэтому для них не существует синтаксиса на языке. Тем не менее, компилятор и IDE должны иногда отображать их (в сообщениях об ошибках, информации о параметрах и т. Д.), Поэтому для них есть мнемоническая нотация:

  • T! означает «T или T?»,

  • (Mutable) Коллекция! означает, что «Java-коллекция T может быть изменчивой или нет, может быть нулевой или нет»,

  • Массив <(out) T>! означает «массив Java из T (или подтип T), обнуляемый или недействительный»

Я не совсем понимаю, что говорят документы. Как я могу исправить эту ошибку?

Мне кажется, вам нужно ключевое слово object ( object: которое необходимо для создания объекта анонимного класса.

См. Объявление объекта

Попробуй это:

 alarmSwitch.setOnCheckedChangeListener(object:OnCheckedChangeListener() { fun onCheckedChanged(buttonView:CompoundButton, isChecked:Boolean) { // whatever... } }) 

Надеюсь это поможет

Мы также можем упростить код, используя выражение лямбда

 alarmSwitch.setOnCheckedChangeListener { buttonView, isChecked -> /* whatever...*/ } 

https://antonioleiva.com/functional-programming-android-kotlin-lambdas/