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

标签 android android-databinding

我有一个自定义的 Presenter 类,我似乎无法绕过必须将 android.view.View 对象作为参数传递到我想要执行的方法中用户点击按钮,即使我不需要 View 对象。使用 DataBinding,是否可以将 onClick 事件绑定(bind)到没有 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
}
...

这可能吗?

最佳答案

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

关于android - 使用 DataBinding 的无参数 OnClick 方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49517671/

相关文章:

android - SharedPreferences 的范围

android - 数据绑定(bind)差异文本或应用

android - LiveData 和 ViewModel 不更新 textview

android - 数据绑定(bind) : Bind single method from listener with multiple methods

php - 将图像从android上传到PHP服务器

java - 如何使用 AudioManager 使听筒静音?

Android,如何将长文本加载到 Activity 中?

android - 我安装了最新版本的 Android Studio。我在同步 gradle 时遇到错误

java - Android Architecture Components如何实现对象与ViewModel的双向绑定(bind)

android - textView 上的数据绑定(bind)空指针异常