【发布时间】:2022-11-22 08:12:53
【问题描述】:
我需要从 EditText 到 MutableLiveData 的两种数据绑定方式。 一种方法工作正常,从 LiveData 到 View:
@BindingAdapter("app:dtm")
fun AppCompatEditText.conversion(value: Float) {
Log.d("DTAG","Find")
setText(value.toString())
}
但另一方面,从 EditText 到 MutableLiveData 我无法设置:
@InverseBindingAdapter(attribute = "app:dtm", event =
"android:textAttrChanged")
fun AppCompatEditText.conversion(): Float {
Log.d("DTAG","John Connor")
return this.text.toString().toFloat()
}
它导致两个绑定适配器之间的循环
我究竟做错了什么?
我的变量:
var a1CValue = MutableLiveData(7.0f)
看法:
<androidx.appcompat.widget.AppCompatEditText
android:id="@+id/firstText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:selectAllOnFocus="true"
app:dtm="@={dataModel.a1CValue}"
tools:text="1.2" />
【问题讨论】:
标签: android kotlin android-databinding