这篇文章说参考android官网来介绍如何使用Data Binding库来书写布局文件。并且用最少的代码来绑定你的app逻辑和layouts文件的控件。
在app中的build.gradle中添加,如下:
android { .... dataBinding { enabled = true } }
创建一个 POJO : User.java
private final String firstName; private final String lastName; public User(String firstName, String lastName) { this.firstName = firstName; this.lastName = lastName; } public String getFirstName() { return this.firstName; } public String getLastName() { return this.lastName; }
在 layout 中使用 data
<?xmlversion="1.0" encoding="utf-8"?> <layoutxmlns:android="http://schemas.android.com/apk/res/android"> <data> <variablename="user" type="com.jwenfeng.demomvp.bean.User"/> </data> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <android.widget.Toolbar android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@color/colorPrimary"> </android.widget.Toolbar> <TextViewandroid:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{user.firstName}"/> <TextViewandroid:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{user.lastName}"/> </LinearLayout> </layout>
在 data 内描述了一个名为user的变量属性,使其可以在这个layout中使用,用法类似于 java web 的 el 表达式
在activity中使用
MainActivityBindingbinding = DataBindingUtil.setContentView(this, R.layout.main_activity); Useruser = new User("Test", "User"); binding.setUser(user);
MainActivityBinding 这个类在写完 layout 的时候会生成 如果是 listview 或者 recyclerview 的adapter 可以使用
ListItemBindingbinding = ListItemBinding.inflate(layoutInflater, viewGroup, false); //or ListItemBindingbinding = DataBindingUtil.*inflate*(layoutInflater, R.layout.***list_item***, viewGroup, **false**);
运行结果如图
本文地址: http://jwenfeng.com/?p=195
尊重原创,转载请注明:From 晓峰残月(http://jwenfeng.com) 侵权必究! 未完待续…