从findViewById()到ButterKnife,在到现在要讲的DataBinding技术,关于数据的绑定有了很大的提升。
DataBinding是google官方提供的技术支持,所以不需要引入插件,非常简单的就可以使用。
第一步:在app的gradle中开启dataBinding
android { compileSdkVersion 26 dataBinding { enabled = true } }
第二步:对layout布局进行修改
<?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android"> <data> <variable name="user" type="com.malei.databindingpro.UserInfo"/> </data> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{user.firstName}"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{user.lastName}"/> </LinearLayout> </layout>
第三步:创建userInfo类
public class UserInfo extends BaseObservable{ private String firstName; private String lastName; @Bindable public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } @Bindable public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } }
第四步:数据与xml文件进行绑定
ActivityMainBinding binding = DataBindingUtil.setContentView(this,R.layout.activity_main); UserInfo user = new UserInfo(); user.setFirstName("firstName"); user.setLastName("tom"); binding.setUser(user);
完成! 太简单了。