安卓Android DataBinding 超简单实例
前言
提示:这里可以添加本文要记录的大概内容:
便于理解
提示:以下是本篇文章正文内容,下面案例可供参考
使用步骤
1.APP的gradle当 Android{}中开启
代码如下(示例):
dataBinding{
enabled = true
}
2.搞个实体类
代码如下(示例):
//dataBinding第二步
//可以自动的添加和移除监听 而且用户可以自行操作更新数据 可以完全更新 也可以单个的更新
public class UserEntity extends BaseObservable {
public String username;
public String password;
public int userId;
public String code;
public UserEntity(String username, String password, int userId, String code) {
this.username = username;
this.password = password;
this.userId = userId;
this.code = code;
}
// 如果想要单个更新数据 get添加 @Bindable set添加 notifyPropertyChanged(BR.username);
@Bindable
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
notifyPropertyChanged(BR.username);
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
@Override
public String toString() {
return "UserEntity{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
", userId=" + userId +
", code='" + code + '\'' +
'}';
}
}
3.布局中
代码如下(示例):
<?xml version="1.0" encoding="utf-8"?>
<!--第三步 将一个布局 变成dataBinding的形式 Alt+回车 -->
<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指定实体类对象-->
<import type="com.wlsj2022.myapplication.model.entity.UserEntity"/>
<!-- 指定对象的名字和类型-->
<variable
name="user"
type="com.wlsj2022.myapplication.model.entity.UserEntity" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".view.MainActivity">
<!-- dataBinding 第四步 text的属性 用于演示 小于10显示名字 大于10显示密码-->
<TextView
android:onClick="btn_click"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{user.userId<10?user.username:user.password}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
4.类中更新
代码如下(示例):
// dataBinding第五步 全部更新
ActivityMainBinding activityMainBinding =
DataBindingUtil.setContentView(this,R.layout.activity_main);
//实体类对象
UserEntity userEntity = new UserEntity("wangwu","12345",5,"200");
//单独更新一个数据 需要一些配置
userEntity.setUsername("王五");
activityMainBinding.setUser(userEntity);
总结
提示:这里对文章进行总结:
就是这样