如何在一个视图上调用多个 onClick,并将其与数据绑定和 ViewModel 结合起来?
How to call multiple onClick on one view, and combine this with data binding and ViewModel?
我正在尝试通过 onClick 调用多个方法并将其通过 ViewModel 传递到数据绑定。
我在 xml 文件中这样调用视图
android:onClick="@{() -> gameViewModel.increaseScore()}"
我想添加另一种方法,但我收到错误“Duplicate attribute onClick”。
理论上我在这里找到了解决方案 - 但我认为这不是摆脱 setOnClickListners 的目的,现在要实现 View.OnClickListener 侦听器并以非常相似的方式执行相同的操作。有什么巧妙的方法可以将它们结合在一起吗?
使用 kotlin 你可以做这样的事情
@BindingAdapter("customOnClickListener")
fun View.customOnClickListener(viewModel: YourViewModel) {
setOnClickListener {
viewModel.actionOne()
viewModel.actionActionTwo()
//action three...
}
}
然后在xml中你可以这样使用它:
app:customOnClickListener="@{viewModel}"
我正在尝试通过 onClick 调用多个方法并将其通过 ViewModel 传递到数据绑定。 我在 xml 文件中这样调用视图
android:onClick="@{() -> gameViewModel.increaseScore()}"
我想添加另一种方法,但我收到错误“Duplicate attribute onClick”。
理论上我在这里找到了解决方案 -
使用 kotlin 你可以做这样的事情
@BindingAdapter("customOnClickListener")
fun View.customOnClickListener(viewModel: YourViewModel) {
setOnClickListener {
viewModel.actionOne()
viewModel.actionActionTwo()
//action three...
}
}
然后在xml中你可以这样使用它:
app:customOnClickListener="@{viewModel}"