如何在一个视图上调用多个 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}"