上面的代码调用一个方法,我希望它从-6ren">
gpt4 book ai didi

android - 如何让xml中的 `onClick()`调用两个方法?

转载 作者:行者123 更新时间:2023-12-02 06:26:35 27 4
gpt4 key购买 nike

我想让布局 xml 中的 onClick() 触发两个 View 模型中的两个方法。

代码:

<Button
android:onClick="@{() -> model.onButtonClick()}"
... />

上面的代码调用一个方法,我希望它从不同的 View 模型调用另一个方法。
我想添加的函数调用:model2.onButtonClick()

可能吗?如果可以,请添加一个最小的示例。 (期待 xml 解决方案)

注意: View 模型作为 xml 中的参数传递。 (数据绑定(bind)变量)

编辑 1:这两个函数都位于两个不同的 View 模型中。所以我(经过一些研究)知道在另一个 View 模型中使用/声明/初始化一个 View 模型并不是一个好的做法。

我可以在我的 fragment 中创建一个点击监听器并在那里调用这两个函数。但我想消除 fragment 中的点击监听器(按照 MVVM 进行 View )。

我并不是在寻找某种可能的方法。我正在寻找一种最佳实践方法,我打算在其中实现 MVVM、关注点分离和数据绑定(bind)。

最佳答案

我已经找到解决方案了。也许很愚蠢,但简单却是天才:

app:onRefreshListener="@{() ->仪表板VM.onRefresh()!= homeVM.onRefresh()}"

方法需要返回 true/false -> 无论如何。

对于任何其他数量的方法,请使用 OR 并始终返回 false。

正确的解决方案应该通过转换器来实现。但这需要大量代码。

关于android - 如何让xml中的 `onClick()`调用两个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57024664/

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