#android #kotlin #data-binding #android-databinding #material-components-android
#Android #kotlin #привязка данных #android-привязка к данным #материал-компоненты-android
Вопрос:
Я реализую пользовательскую двустороннюю привязку данных. Для InverseBindingAdapter я хочу получить исходное значение, подобное этому примеру https://developer.android.com/reference/android/databinding/InverseBindingAdapter
К сожалению, я получаю сообщение об ошибке при компиляции
ошибка: @InverseBindingAdapter getDuration(ButtonToggleGroup, int) принимает 2 параметра, но ожидался 1 параметр
Bindings.kt
@BindingAdapter("durationAttrChanged")
fun setDuration(buttonToggleGroup: ButtonToggleGroup, listener: InverseBindingListener) {
buttonToggleGroup.addOnButtonCheckedListener { _, buttonId, isChecked ->
if (isChecked) {
listener.onChange()
}
}
}
@BindingAdapter("duration")
fun setDuration(buttonToggleGroup: ButtonToggleGroup, oldValue: Int?, newValue: Int?) {
val value = newValue ?: return
if (oldValue == newValue) return
// Some code here...
}
@InverseBindingAdapter(attribute = "duration")
fun getDuration(buttonToggleGroup: ButtonToggleGroup, originalValue: Int?): Int? {
return // Something
}