【发布时间】:2019-10-23 13:22:54
【问题描述】:
我在 kotlin 中尝试了 android 的双向数据绑定,但我似乎无法让它工作。我有 2 个 EditText,每个都应该更新另一个 EditText。
例如:
当我在 EditText1 中输入“Test”时,EditText2 应该使用来自 EditText1 的值加上后缀 (e.g. TestSUFFIX) 进行更新,反之亦然。
这些是我的 TextViews 的布局
<androidx.appcompat.widget.AppCompatEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@={convertermodel.valueFrom}" />
<androidx.appcompat.widget.AppCompatEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@={convertermodel.valueTo}" />
这是我的ViewModel
class ConverterModel : BaseObservable() {
@Bindable
var valueFrom: String? = null
get() {
return valueTo + "SUFFIX"
}
set(param) {
field = param
notifyPropertyChanged(BR.valueFrom)
}
@Bindable
var valueTo: String? = null
get() {
return valueFrom + "SUFFIX"
}
set(param) {
field = param
notifyPropertyChanged(BR.valueTo)
}
}
它导致了一个无限循环。我怎样才能防止这种情况发生?
【问题讨论】: