Android DataBinding库的使用

前言

本篇是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

发布了171 篇原创文章 · 获赞 84 · 访问量 25万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 岁月 设计师: pinMode

分享到微信朋友圈

×

扫一扫,手机浏览