DataBinding入门使用
一、环境
Android Studio 1.3+
Gradle版本>=1.5.0-alphal
二、依赖
classpath ‘com.android.tools.build:gradle:1.5.0’
然后修改对应模块(Module)的 build.grade:
android {
....
dataBinding {
enabled = true
}
}
注意:Android Stuido 的版本一定要大于1.3,而且Android Studio目前对binding对象没有自动代码提示,只会在编译时进行检查。
三、使用
1 实体类与TextView的数据绑定
在MainActivity.java中
用【DataBindingUtil.setContentView(this, R.layout.activity_main);
】代替【setContentView(R.layout.activity_main)
】
ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
User user = new User("Relish", "21");
binding.setUser(user);
在activity_main.xml中
声明将要绑定的数据
<data>
<variable
name="user"
type="cn.com.servyou.bean.User" />
</data>
实现数据绑定@{user.name}
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{user.name}" />
2 绑定控件的点击事件
在MainActivity.java中
ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
binding.setClickListener((View v) -> Toast.makeText(this, "test toast", Toast.LENGTH_SHORT).show());
在activity_main.xml中
声明将要绑定的监听器
<data>
<variable
name="clickListener"
type="android.view.View.OnClickListener" />
</data>
点击事件绑定@{clickListener}
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="@{clickListener}"
android:text="Submit" />
3 设置有ID控件的TextView的文本
在MainActivity.java中
ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
binding.tv.setText("带ID的TextView");
在activity_main.xml中
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />