使用 DataBinding 的无参数 OnClick 方法调用

Parameterless OnClick method call with DataBinding

我有一个自定义 Presenter class 并且我似乎无法绕过必须将 android.view.View 对象作为参数传递到我希望在用户单击时执行的方法中按钮,即使我不需要 View 对象。使用 DataBinding,是否可以将 onClick 事件绑定到没有来自 XML 参数的方法?

<layout>
   <data>
     <variable
            name="presenter"
            type="com.somepackage.Presenter"/>
    </data>
    ...
    android:onClick="@{ presenter.onClick }"
    ...
</layout>

Presenter class 中,我必须有以下签名,否则代码无法编译:

...
public void onClick( @NonNull View ignored ) {
     //do something that doesn't use the view parameter
}
...

我想做的是在我的 Presenter 类中有一个方法签名,它没有视图作为参数:

...
public void onClick() {
     //do something that doesn't use the view parameter
}
...

这可能吗?

在你的 xml 你必须做 android:onClick="@{() -> presenter.onClick() }" 调用您的方法