使用DataBinding调用无参数OnClick方法

时间:2018-03-27 16:06:42

标签: android android-databinding

我有一个自定义Presenter类,我似乎无法将android.view.View对象作为参数传递给我想要在用户点击按钮时执行的方法,即使我这样做不需要View对象。使用DataBinding,是否可以将onClick事件绑定到不带XML参数的方法?

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

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

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

我想要做的是在我的Presenter calss中有一个没有View作为参数的方法签名:

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

这可能吗?

1 个答案:

答案 0 :(得分:3)

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