DataBinding初探 数据绑定的用法 ,import 集合类型,绑定的表达式,访问集合类型2...

数据绑定的用法
import语法
 
 
如果类名相同,可以启用别名
 
import 集合类型
 
使用类的静态方法
..
android:text = "@{MyStringUtils.capitalize(user.lastName)}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
传递数据到 Include layout
xmlns:bind="http://schemas.android.com/apk/res-auto">
android:orientation ="vertical"
android:layout_width="match_parent"
android:layout_height ="match_parent"
 
绑定的表达式
绑定的表达式里面的语法,基本上与java语言里的相同
支持语法
Mathematical + - / * %
String concatenation +
Logical && ||
Binary & | ^
Unary + = ! ~
Shift >> >>> <<
Comparison == > < >= <=
instanceof
Grouping()
Literals - character ,String ,numeric,null
Cast
Method calls
Field access
Array access[]
Ternary operator ?:
不支持的语法有
this super new
对待空指针的处理
表达好似不会抛出空指针的异常,对于空指针的访问都返回的是 null,比如表达式 @[user.name],
user是null,访问user.name返回的也是null,不会抛出空指针异常。
Null Coalescing操作符
Null Coalescing 操作符(??)会根据左右两侧是否是null 进行选择
如果左侧的不为null ,则选择左侧,为null 选择右侧:
android:text ="@{user.displayName ?? user.lastName}"
等同于:
android:text ="@{user.displayName !=null? user.displayName : user.lastName}"
Null Coalescing ?? 会根据左右两侧是否为null进行选择
 
android:text ="@{user.displayName??user.lastName}"
==>
android:text ="@{user.displayName!=null ? user.displayNmae : user.lastName}"
 
 
=======================================================
 
访问集合类型
防伪类型中的元素可以使用 []符号来进行访问
 
..
android:text ="@{list[index]}"
android:text="@{sparse[index]}"
android:text="@{map[key]}"
 
===========================================================================
访问 Resource
android:padding ="@{large?@dimen/largePadding:@dimen/samllPadding}"
android:text = "@{@string/nameFormat(firstName,lastName)}"
android:text = "@{@plurals/bananaCount}"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

转载于:https://www.cnblogs.com/qiankundai/p/6898800.html

你可能感兴趣的:(移动开发,java)