DataBinding使用之-绑定TextView

2019-08-02  本文已影响0人  MengkZhang

布局的替换

在项目app下的build.gradle添加DataBinding支持

android {
     ...
    //第一步:引入dataBinding
    dataBinding {
        enabled = true
    }
}

根布局使用layout标签替换 并添加<data>标签

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">
    <data>
        <variable
            name="user"
            type="com.example.administrator.db.User"/>
    </data>
    ...
</layout>

在<variable>标签中 name别名 type实体的路径

在布局中绑定数据

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">
    <data>
        <variable
            name="user"
            type="com.example.administrator.db.User"/>
    </data>
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@{user.name}"
            tools:text="zhang" />

    </RelativeLayout>
</layout>

实体类

/**
 * Created by zhang on 2019/8/2 0002.
 * Desc:
 */

public class User {
    private String name;
    private String age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }
}

编译项目 生成ActivityMainBinding


在Activity中使用DataBinding实现双向绑定
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ActivityMainBinding activityMainBinding = DataBindingUtil.setContentView(this,R.layout.activity_main);
        User user = new User();
        user.setName("zhangM");
        activityMainBinding.setUser(user);
    }
}
上一篇 下一篇

猜你喜欢

热点阅读