У меня есть следующий функциональный интерфейс, определенный в Java.
interface OnButtonSwitchedListener {
fun onButtonSwitched(isLogin: Boolean)
}
Теперь проблема в том, что когда я должен использовать это в Kotlin, мне нужно создать анонимный объект для использования этого интерфейса, например,
binding.button.setOnButtonSwitched(object: OnButtonSwitchedListener{
override fun onButtonSwitched(isLogin: Boolean) {
binding.root
.setBackgroundColor(
ContextCompat.getColor(
this@AuthActivity,
if(isLogin) R.color.colorPrimary else R.color.lb_secondPage))
}
})
Однако, синтаксис Java8 намного умнее,
binding.button.setOnButtonSwitched(isLogin -> {
binding.root
.setBackgroundColor(
ContextCompat.getColor(
this,
isLogin ? R.color.colorPrimary : R.color.secondPage));
})
Есть ли способ, я тоже могу написать подобное лямбда-выражение в Kotlin?
Я попробовал следующее, но выдает ошибку, показанную на вставленном изображении.
setOnButtonSwitched{isLogin -> {binding.root
.setBackgroundColor(
ContextCompat.getColor(
this@AuthActivity,
if(isLogin) R.color.colorPrimary else R.color.lb_secondPage))}}
![Error message in Android Studio](https://i.stack.imgur.com/xl998.png)