Это проблема масштаба. Возможно, переменная не была инициализирована. it
- это, в данном случае, используемый вами вид. Теперь, прежде чем я продолжу, я хочу упомянуть одну вещь: компилятор не знает, установлен ли или нет этот прослушиватель click для нескольких представлений или нет. В результате компилятор думает: «Если это какой-либо другой вид, он не будет инициализирован».
Что вы можете сделать, это добавить else
к when
:
else -> return@OnClickListener;
Это означает, что в любом другом случае возвращается. Он не выполняет код, который зависит от значения, и также не будет инициализирован.
В качестве альтернативы, вы можете назначить другое значение в else brach. Либо в порядке.
Кроме того, вы можете оптимизировать свой оператор when Поскольку вы присваиваете одно и то же значение для каждой ветви, вы можете просто сделать:
val copyToDay = when(it){
copyHoursMonday -> R.string.MONDAY
copyHoursTuesday -> R.string.TUESDAY
copyHoursWednesday -> R.string.WEDNESDAY
copyHoursThursday -> R.string.THURSDAY
copyHoursFriday -> R.string.FRIDAY
copyHoursSaturday -> R.string.SATURDAY
copyHoursSunday -> R.string.SUNDAY
else -> return@OnClickListener
}