Android 安卓DataBinding(九)·运算符

举报
第三女神程忆难 发表于 2021/05/26 13:20:45 2021/05/26
【摘要】 文章目录 前景回顾运算符使用方法算术运算符字符串合并操作??运算符布局文件属性控制 前景回顾 Android 安卓DataBinding(一)·基础 Android 安卓DataBinding(二)·入门 Android 安卓DataBinding(三)·单向绑定 BaseObservable Android 安卓DataBinding(四...


前景回顾

Android 安卓DataBinding(一)·基础
Android 安卓DataBinding(二)·入门
Android 安卓DataBinding(三)·单向绑定 BaseObservable
Android 安卓DataBinding(四)·单向绑定 ObservableField
Android 安卓DataBinding(五)·单向绑定 ObservableCollection(集合使用)
Android 安卓DataBinding(六)·双向绑定
Android 安卓DataBinding(七)·事件绑定
Android 安卓DataBinding(八)·引用类方法


运算符

本篇讲的是在布局文件中使用运算符:

运算符类型 运算符号
算术运算符 + - * / %
字符串合并操作 +
逻辑运算符 && II
一元运算符 + - !~
二元运算符 & I ^
三元运算符 ?:
移位运算符 >> >>> <<
比较运算符 > < = >= <= ==

使用方法

接下来来介绍上面的运算符的使用方法,给出代码实例!


算术运算符

举例:
写出布局文件:
因为是int类型,所以要用 String.valueOf()

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"> <data> </data> <android.support.constraint.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FFFFFF" tools:context=".MainActivity"> <TextView android:layout_width="match_parent" android:layout_height="230dp" android:background="#03A9F4" android:gravity="center" android:text="@{String.valueOf(123+456)}" android:textColor="#FFFFFF" android:textSize="18dp" android:textStyle="bold" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </android.support.constraint.ConstraintLayout>
</layout>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

MainActivity.java 中绑定布局

package com.lkdot.tbind;

import android.databinding.DataBindingUtil;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.lkdot.tbind.databinding.ActivityMainBinding;

public class MainActivity extends AppCompatActivity { ActivityMainBinding activityMainBinding; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); activityMainBinding = DataBindingUtil.setContentView(this, R.layout.activity_main); }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

效果图:
在这里插入图片描述
算术运算符其他的(- * / %)使用方法都是这样


字符串合并操作

主要代码:android:text="@{data.title + data.name}"

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"> <data> <import type="com.lkdot.tbind.DataBean" /> <variable name="data" type="DataBean" /> </data> <android.support.constraint.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FFFFFF" tools:context=".MainActivity"> <TextView android:layout_width="match_parent" android:layout_height="230dp" android:background="#03A9F4" android:gravity="center" android:text="@{data.title + data.name}" android:textColor="#FFFFFF" android:textSize="18dp" android:textStyle="bold" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </android.support.constraint.ConstraintLayout>
</layout>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

Bean类:

package com.lkdot.tbind;

public class DataBean { private String title; private String name; public DataBean(String title, String name) { this.title = title; this.name = name; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getName() { return name; } public void setName(String name) { this.name = name; }
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

MainActivity中绑定

package com.lkdot.tbind;

import android.databinding.DataBindingUtil;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.lkdot.tbind.databinding.ActivityMainBinding;

public class MainActivity extends AppCompatActivity { ActivityMainBinding activityMainBinding; DataBean textData; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); activityMainBinding = DataBindingUtil.setContentView(this, R.layout.activity_main); textData = new DataBean("Start", "NorthernBrain"); activityMainBinding.setData(textData); }
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

运行效果:
在这里插入图片描述


??运算符

?? 运算符会取第一个不是 null 的值。
在这里插入图片描述

android:text="@{data.title ?? data.name}"


布局文件属性控制

他甚至可以用于布局文件属性控制
android:visibility="@{data.status ? View.VISIBLE : View.GONE}"


下一片文章:Android 安卓DataBinding(十)·include中使用



文章来源: myhub.blog.csdn.net,作者:第三女神程忆难,版权归原作者所有,如需转载,请联系作者。

原文链接:myhub.blog.csdn.net/article/details/102157094

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。