gpt4 book ai didi

android - 数据绑定(bind)和 MVVM。通过单击按钮显示 DatePickerDIalog

转载 作者:搜寻专家 更新时间:2023-11-01 08:19:40 27 4
gpt4 key购买 nike

现在我有了这段代码:

class MyFragment : DaggerFragment() {
...
private fun setTimePickerDialog() {
binding.timeButton.setOnClickListener{
val calendar = viewModel.calendar
val curHourOfDay = calendar.get(Calendar.HOUR_OF_DAY)
val curMinute = calendar.get(Calendar.MINUTE)
val dialog = TimePickerDialog(context, { _, hourOfDay, minute ->
val c = Calendar.getInstance()
c.set(1970, 0, 1, hourOfDay, minute)
viewModel.time.value = SimpleDateFormat("HH:mm:ss").format(c.time)
}, curHourOfDay, curMinute, true)
dialog.show()
}
}
...
}

我想利用 DataBinding 库,而不是在我的 fragment 中编写 setOnClickListener。但我无法将此代码移动到 ViewModel,因为需要上下文。通过使用 DataBinding 和 MVVM 单击按钮来显示 DatePickerDialog 的简洁方法是什么?

最佳答案

为什么不能在 xml 中使用处理程序而不是 View 模型。然后使用处理程序获取点击。在您的 XML 中 --> 使用一个名为 handler 的变量,其类型是您的 fragment 的路径

<data class ="binding">
<variable name="handler" type="com.MyFragment"/>
</data>

android:onClick="@{()->handler.onDisplayTimePickerDialogClick()}

关于android - 数据绑定(bind)和 MVVM。通过单击按钮显示 DatePickerDIalog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53024924/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com