Android DataBinding库的使用

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/user11223344abc/article/details/82627791

前言

本篇是MVVM架构的姊妹篇,由于篇幅原因,所以将这个工具最简单的使用抽出来说一下。

实践

库配置


android{
    ...
    dataBinding {
        enabled true
    }
    ...
}

xml布局


    <?xml version="1.0" encoding="utf-8"?>
    <layout xmlns:android="http://schemas.android.com/apk/res/android">

        <data>
            <variable
                name="user"
                type="com.old.mvvm.UserBean" />
        </data>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <!--android:onClick="@{handlers::onClickFriend}"-->
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@{user.name}" />
        </LinearLayout>

    </layout>

数据绑定


    public class Level1Activity extends AppCompatActivity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_level_one_);
            UserBean user = new UserBean(66,"小明");
            ActivityLevelOneBinding ac = DataBindingUtil.setContentView(this, R.layout.activity_level_one_);
            ac.setUser(user);
        }
    }

sync之后生成的类地址:

project path…\app\build\generated\source\apt\debug\com\old\mvvm\databinding\xxxxBindg.java

注意坑!

dataBinding就那么几行代码,是个人看看都会用,但是我在用的时候遇了个一个坑,sync,make,rebuild之后类是生成了,但是IDE死活没有编译出对应的.class导致无法使用这个类。

后来我在Stack Overflow找到一个老哥和我一样情况,就是在布局名称后面加了个杠就行了。
https://stackoverflow.com/questions/50713070/unknown-databinding-class/50713352

Demo

https://github.com/zj614android/dataBindingDemo

猜你喜欢

转载自blog.csdn.net/user11223344abc/article/details/82627791