zoukankan      html  css  js  c++  java
  • DataBinding初探 数据绑定的用法 ,import 集合类型,绑定的表达式,访问集合类型2

    数据绑定的用法
    import语法
     
    <data>
    <import type="android.view.view"/>
    </data>
     
    如果类名相同,可以启用别名
    <import type="android.view.view" />
    <import type ="com.example.real.estate.View" alias="Vista" />
     
    import 集合类型
    <data>
    <import type="com.example.User"/>
    <import type ="java.util.List"/>
    <variable name="user" type="User"/>
    <variable name ="userList" type="List<User>"/>
    </data>
     
    使用类的静态方法
    <data>
    <import type="com.example.MyStringUtils" />
    <variable name ="user" type="com.example.User" />
    </data>
    ..
    <TextView
    android:text = "@{MyStringUtils.capitalize(user.lastName)}"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    />
    传递数据到 Include layout
    <?xml version="1.0" encoding="utf-8"?>
    <layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:bind="http://schemas.android.com/apk/res-auto">
    <data>
    <variable name="user" type="com.example.User"/>
    </data>
    <LinearLayout
    android:orientation ="vertical"
    android:layout_width="match_parent"
    android:layout_height ="match_parent"
    <include layout="@layout/name" bind:user="@{user}" />
    <include layout ="@layout/contact" bind:user="@{user}" />
    </LinearLayout>
    </layout>
     
    绑定的表达式
    绑定的表达式里面的语法,基本上与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}"
     
     
    =======================================================
     
    访问集合类型
    防伪类型中的元素可以使用 []符号来进行访问
    <data>
    <import type="android.util.SparseArray"/>
    <import type="java.util.Map" />
    <import type="java.util.List"/>
     
    <variable name ="list" type="List<String>"/>
    <variable name ="sparse" type="SparseArray<String>" />
    <variable name ="map" type="Map<String,String>" />
    <variable name="index" type="int" />
    <varibale name="key" type="String" />
    </data>
    ..
    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}"
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    [转]ios 判断左右摆动方法与 摇一摇
    UIButton 使用大全
    疑问:xcode中为什么按钮被图片覆盖了,还能响应事件?
    iOS base64 加密解密 通用类
    new BMKMapPoint[index] 和 delete []points 报错
    Xcode 中 如果不自动设置字体大小,则系统默认为17号
    UILabel 详解
    BMKMapView 和 BMKSearch 初始化先后顺序问题
    使用ASIFormDataRequset类 获取webservice 接口数据
    实现 scrollview 默认显示指定的页码
  • 原文地址:https://www.cnblogs.com/qiankundai/p/6898800.html
Copyright © 2011-2022 走看看