【发布时间】:2020-06-21 14:16:03
【问题描述】:
我正在尝试对日期选择器使用 2 路数据绑定。查看two-way databinding guide,它显示平台具有对日期选择器属性的内置支持:android:year/month/day,但我在 xml 中找不到这些属性(例如未知属性:android:hour)。我是否误读了指南以及为日期选择器实现 2 路绑定需要什么?
【问题讨论】:
标签: android android-datepicker
我正在尝试对日期选择器使用 2 路数据绑定。查看two-way databinding guide,它显示平台具有对日期选择器属性的内置支持:android:year/month/day,但我在 xml 中找不到这些属性(例如未知属性:android:hour)。我是否误读了指南以及为日期选择器实现 2 路绑定需要什么?
【问题讨论】:
标签: android android-datepicker
这可能是 Android Studio 的问题,但即使出现“未知属性”警告,日期选择器双向绑定也能正常工作。
xml:
android:day="@={viewModel.day}"
android:month="@={viewModel.month}"
android:onDateChanged="@{(v, year, month, day) -> viewModel.onDateChanged(year, month, day)}"
android:year="@={viewModel.year}"
在 ViewModel 中:
val year = MutableLiveData<Int>()
val month = MutableLiveData<Int>()
val day = MutableLiveData<Int>()
fun onDateChanged(year: Int, month: Int, day: Int) {
dateTime.value =
dateTime.value?.withYear(year)?.withMonth(month + 1)?.withDayOfMonth((day))
}
【讨论】: