①dataBinding在xml文件是支持import,可以导入java支持的包,所以也就可以进行简单的运算,比如上面的xml中就用了三元运算符
动态设置颜色

android:textColor="@{user.vip? 0xffff0000:0xff000000}"

当导入的用户是vip的时候,文本颜色会设置为红色,当不是vip的时候会显示黑色

②而且支持java的字符串拼接

android:text="@{user.nickName + `(` + user.name +`)`}"

细心的网友肯定会发现,这个字符串拼接的时候用到的里面不是单引号‘,而是一个数字键1左边那个键`。

其中在dataBinding的xml文件中,是不支持双引号中加单引号的,但是支持单引号中加双引号,在双引号中可以加`;

也可以把字符写到String 文件中,赋值这样写

android:text="@{user.nickName + `@string/aa`}"注意是@string 

③细心的网友还会发现xml中有这样一句话

android:text="@{user.nickName ?? user.name}"

这里用了双冒号??代表的意思是,如果user.nickName为空,则显示user.name,如果不为空,则显示nickName;

其中这句话等于  user.nickName == null ? user.name : user.nickName;

④既然这是xml布局,大家肯定知道在xml中是不允许用<>的,用的话会被默认是标签,那么如果一定要用<>做比较表达式呢,这里可以使用转义来解决。

代码中有这样一句话:

android:textColor="@{user.level < 3 ? 0xff03bbf9 : 0xfff60bdb }
其中的< 代表的就是小于符号<,意思是如果用于等级小于3,则邮箱文本为蓝色,否则文本为紫色。

⑤而我们实际运用中肯定也会有很多的点击事件,那么如何实现点击事件的呢?

这就是我们为什么在dataBean实体类User中添加了两个方法的原因

public void clickName(View view){        Toast.makeText(view.getContext(),"点击了用户名",Toast.LENGTH_SHORT).show();    }

这两个方法其实不一定写在实体类中,其实写在其他类中也是可以的,不过我更推荐写在实体类中,因为触发事件的时候,很有可能会用到实体类的其他属性,写在这里面调用起来就变得比较轻松了。

然后再把事件和xml中绑定在一起

这个中间有onClick和onLongClick用于绑定。

设置View上属性默认值

语法就是在完整的属性值最后用英文的逗号隔开, 加上default=xxxx, 注意这个默认值是不能加上引号的。

更多相关文章

  1. Android实现ListView或GridView首行/尾行距离屏幕边缘距离
  2. 记录用ConstraintLayout实现控件view最大高度的过程
  3. android 自定义属性通过反射关联组件与方法
  4. Android(安卓)属性动画(Property Animation) 完全解析 (上)
  5. Android五大布局详解——LinearLayout(线性布局)
  6. UI组件之TextView及其子类(一)TextView和EditText
  7. Android系统input系统(1)
  8. 自定义程序实现Android(安卓)EditText只允许输入指定字符
  9. [置顶] 超赞!!Android视图讲解!!以及Android内坐标分析!!!

随机推荐

  1. APK不用su的方式来获取ROOT权限
  2. Android C/CPP log
  3. 优秀博文
  4. android edittext 输入长度限制并提示
  5. Android studio 常用的插件
  6. Android 播放MP4文件
  7. Android高版本不兼容低版本gradle问题
  8. Android(安卓)利用addView 让Activity 动
  9. android中gps的打开关闭
  10. 安卓AS打包报错org.gradle.process.inter