Я использую кнопки материалов и OnButtonCheckedListener в MaterialButtonToggleGroup. В обратном вызове слушателя я хочу проверить, какая кнопка была отмечена.
view.findViewById<MaterialButtonToggleGroup>(R.id.trainingWeightButton)
.addOnButtonCheckedListener {_, resId, isChecked ->
viewModel.isTrainingWeightValid = resId == R.id.trainingWeightButtonYes && isChecked
}
Но R.id.trainingWeightButtonYes
имеет какое-то странное значение.
Если я использую следующий код, он работает нормально.
val trainingWeightButtonYesId: Int = R.id.trainingWeightButtonYes
view.findViewById<MaterialButtonToggleGroup>(R.id.trainingWeightButton)
.addOnButtonCheckedListener {_, resId, isChecked ->
viewModel.isTrainingWeightValid = resId == trainingWeightButtonYesId && isChecked
}
Я совершенно не понимаю, почему второй подход работает, а первый - нет.
Кто-нибудь знает, в чем разница? Это что-то Kotlin конкретное c здесь?