美文网首页
事件绑定语法

事件绑定语法

作者: 吃惊馆长 | 来源:发表于2017-04-17 15:17 被阅读0次

方法引用
方法参数和返回值必须和监听器方法一致。
例如 事件
void View.OnClickListener.onClick(View v)
对应
void methodReferences(View v) 正确
boolean methodReferences(View v) 错误
void methodReferences() 错误

事件
boolean View.OnLongClickListener.onLongClick(View v)
对应
boolean methodReferences(View v) 正确
void methodReferences(View v) 错误
boolean methodReferences() 错误

布局文件绑定语法
android:onClick="@{handler.methodReferences}" 正确
android:onClick="@{handler::methodReferences}" 正确
android:onLongClick="@{handler::longClick}" 正确
android:onCheckedChanged="@{handler::checkedChanged}" 正确

监听器绑定
使用lambda表达式定义,只需要返回值和监听器方法一致,参数可任意。
*** 解析表达式时候有一个特别的变量名context,取自root view 的getContext()**

data部分
<data>
  <variable name="user" type="net.dou7.learndatabinding.models.User" />
  <variable name="handler" type="net.dou7.learndatabinding.EventHandler" />
</data>

android:onClick="@{() -> handler.click(user)}" 正确
android:onClick="@{(v) -> handler.click(v, user)}" 正确
android:onClick="@{() -> handler.click(context, user)}" 正确

()中的参数要么不定义,要么全部定义
比如RadioGrouponCheckedChanged(Group group, int checkedId)有2个参数
android:onCheckedChanged="@{() -> handler.changed(context)}" 正确
android:onCheckedChanged="@{(group, checkedId) -> handler.changed(context, group)}" 正确
android:onCheckedChanged="@{(group) -> handler.changed(context, group)}" 错误

表达式使用三元运算符的时候,可以使用void
android:onClick="@{(v) -> v.isVisible() ? doSomething() : void}"
仅当事件方法无返回值的时候可以,如下是错误的
android:onLongClick="@{(v) -> v.isVisible() ? doSomething() : false}" 错误

相关文章

  • JS 事件监听、事件委托2018-07-10

    //常规的事件绑定只执行最后绑定的事件 //使用事件监听绑定事件 //可以绑定多个事件 //语法element.a...

  • Vue3.0商店后台管理系统项目实战-事件的模板语法

    v-on:事件名=“事件方法” 绑定事件 1:点击事件 点击按钮 弹出弹框 2:input事件双向绑定的模板语法...

  • jquery——on 绑定事件

    一.实现绑定多个事件 1.使用on绑定多个事件对应同一个事件处理函数语法结构:jq对象.on(“事件类型1 事件...

  • React事件

    react的事件绑定跟dom元素的事件绑定很相似,不过有些区别: React事件命名是驼峰而不是小写 用JSX语法...

  • 事件绑定方式、阻止默认事件和冒泡事件的方式

    一、事件绑定方式 1、 在dom元素中直接绑定,语法为 onXXX="执行函数" onXXX 为事件名称,鼠标单击...

  • angular--数据绑定

    数据绑定几种语法: 事件绑定: 属性绑定和插值绑定是一样的: HTML属性和DOM属性的关系: HTML属性绑定:...

  • 小程序中的一些坑(wepy)

    1.绑定变量的语法,各不相同。 //绑定style中的height变量 //绑定class中的变量 //事件绑定是...

  • 事件绑定语法

    方法引用方法参数和返回值必须和监听器方法一致。例如 事件void View.OnClickListener.onC...

  • wepy注意事项

    事件绑定语法使用优化语法代替原 bindtap="click" 替换为 @tap="click",原catchta...

  • 绑定事件

    在react的elements上绑定事件和在dom上绑定事件极为相似,但是还是有一些语法上的不同:** react...

网友评论

      本文标题:事件绑定语法

      本文链接:https://www.haomeiwen.com/subject/redwattx.html