InverseBindingAdapter — получить исходное значение

#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
}