如何正确集成 Listener Bindings 和 Lambda 表达式
How to properly integrate Listener Bindings and Lambda expressions
我已经开始在 android 应用程序中进行数据绑定。由于没有合适的 material 可用,所以我无法正确理解侦听器绑定和 lambda 表达式的概念。我开始学习android official documentation。在本文档中,我在 Listener Bindings 下找到了我不清楚的以下行。
Listener bindings provide two choices for listener parameters: you can either ignore all parameters to the method or name all of them.
任何人都可以帮助我理解上面的行以及空 lambda 表达式和参数化 lambda 表达式吗?例如:
android:onClick="@{(v) -> v.isVisible() ? doSomething() : void}"
android:onClick="@{(theView) -> presenter.onSaveClick(theView, task)}"
android:onCheckedChanged="@{(cb, isChecked) -> presenter.completeChanged(task, isChecked)}"
提前致谢。
抱歉,我想将此添加为答案,而不是评论。
onCheckedChanged() 方法声明如下:
void onCheckedChanged(CompoundButton buttonView, boolean isChecked);
任何 lambda 表达式都必须包含所有参数或其中的 none。例如:
android:onCheckedChanged="@{(cb, isChecked) -> presenter.completeChanged(task, isChecked)}"
android:onCheckedChanged="@{() -> presenter.completeChanged(task)}"
您从 lambda 调用的方法可以是任何您喜欢的方法,因此您不需要使用任何参数。
您可以为参数使用您喜欢的任何变量名。如果您只提供了一些参数,数据绑定将无法确定您需要哪些参数以及可以丢弃哪些参数。因此,文档中的 all-or-none 注释。
我已经开始在 android 应用程序中进行数据绑定。由于没有合适的 material 可用,所以我无法正确理解侦听器绑定和 lambda 表达式的概念。我开始学习android official documentation。在本文档中,我在 Listener Bindings 下找到了我不清楚的以下行。
Listener bindings provide two choices for listener parameters: you can either ignore all parameters to the method or name all of them.
任何人都可以帮助我理解上面的行以及空 lambda 表达式和参数化 lambda 表达式吗?例如:
android:onClick="@{(v) -> v.isVisible() ? doSomething() : void}"
android:onClick="@{(theView) -> presenter.onSaveClick(theView, task)}"
android:onCheckedChanged="@{(cb, isChecked) -> presenter.completeChanged(task, isChecked)}"
提前致谢。
抱歉,我想将此添加为答案,而不是评论。
onCheckedChanged() 方法声明如下:
void onCheckedChanged(CompoundButton buttonView, boolean isChecked);
任何 lambda 表达式都必须包含所有参数或其中的 none。例如:
android:onCheckedChanged="@{(cb, isChecked) -> presenter.completeChanged(task, isChecked)}"
android:onCheckedChanged="@{() -> presenter.completeChanged(task)}"
您从 lambda 调用的方法可以是任何您喜欢的方法,因此您不需要使用任何参数。
您可以为参数使用您喜欢的任何变量名。如果您只提供了一些参数,数据绑定将无法确定您需要哪些参数以及可以丢弃哪些参数。因此,文档中的 all-or-none 注释。