Android中的Data Binding初探 (二)

本文接《Android中的Data Binding初探 (一)》

数据绑定用法

  • import语法
xml
    

  • 如果类名相同,可以起别名
xml

  • import集合类型
xml
    
    
    
    
 
  • 使用类静态方法
xml
    
    

  • 传递数据到Include layout
xml

   
       
   
   
       
       
   

绑定表达式语法

绑定表达式里的语法,基本上与Java语言里的相同
* 支持语法

javaMathematical + - / * %
String concatenation +
Logical && ||
Binary & | ^
Unary + - ! ~
Shift >> >>> <<
Comparison == > < >= <=
instanceof
Grouping ()
Literals - character, String, numeric, null
Cast
Method calls
Field access
Array access []
Ternary operator ?:
  • 不支持语法
javathis
super
new
  • 空指针处理
    表达式不会抛出空指针异常,对于空指针的访问都返回的是null,比如表达式@{user.name},
    user是null,访问user.name返回的也是null,不会抛出空指针异常

  • Null Coalescing操作符
    Null Coalescing操作符(??)会根据左右两侧是否是null进行选择,
    如果左侧的不为null,则选择左侧,为null选择右侧:

xml android:text="@{user.displayName ?? user.lastName}"

等同于:

xmlandroid:text="@{user.displayName != null ? user.displayName : user.lastName}"
  • 访问集合类型
    集合类型中的元素可以使用[]符号来访问
xml
    
    
    
    
    
    
    
    

…
android:text="@{list[index]}"
…
android:text="@{sparse[index]}"
…
android:text="@{map[key]}"
  • 访问Resource
xmlandroid:padding="@{large? @dimen/largePadding : @dimen/smallPadding}"
android:text="@{@string/nameFormat(firstName, lastName)}"
android:text="@{@plurals/banana(bananaCount)}"

本文参考谷歌官方的Data Binding Guide

本文作者: 阳春面
原文地址:http://www.aswifter.com/2015/07/08/android-data-binding-2/

欢迎关注我的微信公众号,分享Android 开发,IOS开发,Swift开发和互联网内容
微信号:APP开发者

你可能感兴趣的:(android,data-binding)