本篇博客主要介绍DataBinding使用过程中的代码范例:
比如小于号转义字符,括号的转义字符,或运算。主要看一下layout就可以。
转载请注明出处:http://blog.csdn.net/iwanghang/article/details/53198038
MainActivity.java:
package com.iwanghang.databinding;
import android.databinding.DataBindingUtil;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.iwanghang.databinding.databinding.ActivityMainBinding;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
/**
* 用DataBinding方式载入layout
*/
ActivityMainBinding binding = DataBindingUtil.setContentView(this,R.layout.activity_main);
User user = new User();
user.setName("用户名");
user.setNickName("昵称");
//user.setNickName(null);
user.setLevel(4);
user.setEmail("abc@123.com");
user.setVip(true);
binding.setUser(user);
}
}
User.java:
package com.iwanghang.databinding;
public class User {
private String name;
private String nickName;
private String email;
private int level;
private boolean vip;
public int getLevel() {
return level;
}
public void setLevel(int level) {
this.level = level;
}
public boolean isVip() {
return vip;
}
public void setVip(boolean vip) {
this.vip = vip;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<!--改造后的layout-->
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<!--数据模块-->
<data>
<variable
name="user"
type="com.iwanghang.databinding.User"/>
</data>
<!--样式模块-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
tools:context="com.iwanghang.databingding.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@{ user.vip ? 0xffff0000 : 0xff0000}"
android:text="@{ user.nickName + `(` + user.name + `)` }" />
<!--如果nickName为空,显示name;如果如果nickName非空,显示nickName。下面2个写法都可以-->
<!--android:text="@{ user.nickName == null ? user.name : user.nickName }"-->
<!--android:text="@{ user.nickName ?? user.name }"-->
<TextView
android:text="@{ user.nickName ?? user.name }"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{ user.email }" />
<!--如果level<3,颜色为00ff00,否则,颜色为0000ff-->
<!--@{ user.level < 3 ? 0xff00ff00 : 0xff0000ff }-->
<!--@{ user.level < 3 ? 0xff00ff00 : 0xff0000ff }-->
<!--需要写成第二行的形式,因为“<”需要转义成“<”-->
<TextView
android:textColor="@{ user.level < 3 ? 0xff00ff00 : 0xff0000ff }"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="level" />
</LinearLayout>
</layout>
转载请注明出处:
http://blog.csdn.net/iwanghang/article/details/53198038
欢迎移动开发爱好者交流
沈阳或周边城市公司有意开发Android,请与我联系
联系方式
微信:iwanghang
QQ:413711276
邮箱:iwanghang@qq.com
沈阳或周边城市公司有意开发Android,请与我联系
联系方式
微信:iwanghang
QQ:413711276
邮箱:iwanghang@qq.com