@InverseBindingAdapter with parameters

165 Views Asked by At

I have binding adapter that set editText to values 0-99. But I wish to set this params from the layout, how can I do this?

app:rangeFixer="@={viewModel.times}"

@BindingAdapter("app:rangeFixer")
fun AppCompatEditText.rangeFixer(value: String) {
setSelection(text.toString().length)
if (text.toString() == value) {
    return
}
setText(value)

}

@InverseBindingAdapter(attribute = "app:rangeFixer", event = 
"android:textAttrChanged")
fun AppCompatEditText.rangeFixer(): String {
var ret = ""
    //1 and 99 set from layout
text.toString().toIntOrNull()?.let {
    ret = if (it < 1) "1"
    else if (it > 99) "99"
    else text.toString()
}
return ret

}
0

There are 0 best solutions below