我有一个模型,希望通过数据绑定链接到布局,如下所示:
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/input_start_date_til"
android:layout_width="match_parent"
android:layout_height="wrap_content"
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/input_start_date"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/start_date"
android:text='@={model.startDate}' />
</com.google.android.material.textfield.TextInputLayout>
模型是这样的:
data class model(var startDate: DateTime)
由于某些原因,databingin生成显示以下错误:
/数据绑定错误/ msg:在com.google.android.material.textfield.TextInputEditText上找不到值类型为org.joda.time.DateTime的属性“ android:text”的获取器
我已尝试实现以下方法,但没有成功,目前尚不清楚 BindingAdapter 和 InverseBindingAdapter 的作用:
@BindingAdapter("android:text")
fun setText(editText: TextInputEditText,date: DateTime) {
editText.setText(date.toString())
}
@InverseBindingAdapter(attribute = "android:text")
fun getText(date: TextInputEditText): String {
return try {
val dimString = date.text.toString()
DateTime.parse(dimString).toString()
} catch (e: NumberFormatException) {
DateTime.now().toString()
}
}
关于如何解决该问题的任何想法?