1.首先我們要修改xml文件,在最外層嵌套layout唯灵,然后在layout里面加入了數(shù)據(jù)配置data,varialble里面寫入我們要配置的對象別名和包名的全路徑挽拔。
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<!-- //這里相當(dāng)于綁定了數(shù)據(jù)浪蹂,下面就可以使用了,user是別名霜医,方便下面引用user.name-->
<data><variable name="user" type="cq.cake.databinding.User"/></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.name}"/>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{user.pass}"/>
</LinearLayout>
</layout>
2.然后我們在Activity里面寫入和設(shè)置對象的數(shù)據(jù),運行自然就會顯示這些我們設(shè)置的數(shù)據(jù)了驳规!
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
User user = new User("張三", "123456789");
//根據(jù)xml中的配置肴敛,這個binding自然就有setUser方法了
binding.setUser(user);
}
}
↑ a.這里把原來的setContentView(R.layout.activity_main)方法用DataBindingUtil.setContentView(this, R.layout.activity_main)代替了
b.ActivityMainBinding怎么來的?
根據(jù)后面布局xml文件名activity_main變?yōu)锳ctivityMain再加上Binding就生成了, 直接按照這個命名規(guī)范寫就可以了吗购,如果使用快捷鍵自動生成返回對象會返回ViewDataBinding , 它是不會自動包含setUser方法的
- 還有最重要的一點医男,就是需要在build.gradle中的android里面加入此屬性
//使用它需要Android2.1(Api7+)且Gradle 1.5.0-alpha1及以上
dataBinding {
enabled = true
}
有了它再也不用再xml中寫id,然后代碼中findViewById,然后在通過這個控件去一個一個設(shè)置數(shù)據(jù)了!如果是服務(wù)器直接拿到這個對象捻勉,直接通過binder.setUser(user)就行了镀梭,是不是很方便,而且代碼看起來非常的清爽踱启!