【发布时间】:2020-09-09 17:07:25
【问题描述】:
我正在尝试使用 mvvm 从 Kotlin 中的 View 页面更新 EditText。但是当 ViewModel 初始化时,默认值是绑定的,但是当我从 EditText onClick 侦听器更改值时,它不会更新 UI。
xml
<EditText
android:id="@+id/itemsDatePicker"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:text="@={itemviewmodel.selectedDateText}"
android:onClick="@{itemviewmodel.datePickerOnClick}"
android:hint="Select Date"
tools:ignore="AutoFill,TextFields" />
查看模型
fun datePickerOnClick(view: View) {
showDatePicker.value=true
}
查看
vm.showDatePicker.observe(this,androidx.lifecycle.Observer{ s->
val myCalendar: Calendar = Calendar.getInstance()
val date =
DatePickerDialog.OnDateSetListener { view, year, monthOfYear, dayOfMonth -> // TODO Auto-generated method stub
myCalendar.set(Calendar.YEAR, year)
myCalendar.set(Calendar.MONTH, monthOfYear)
myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth)
//This place should update the ui with selected date but not working as expected
vm.selectedDateText.value =DateHelper.getTodayDate(myCalendar.getTime())
}
DatePickerDialog(
this, date, myCalendar
.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
myCalendar.get(Calendar.DAY_OF_MONTH)
).show()
})
非常感谢您为解决此问题提供的任何帮助。 提前致谢。 :)
【问题讨论】:
-
这个onClick方法执行了吗?您可以添加整个 VM 代码吗?