根据前面LiveData,这次将用DataBinding进行代码的一大步缩减。
首先要使用DataBinding,要在gradle里面添加以下字段。
dataBinding{
enabled true
}
之后再布局文件中可以看到有个小灯泡,点击第一个:
之后会自动为你添加一个<layout>
和<data>
之后在相应的activity里,创建ActivityMyDataBindingBinding
类对象:
注意下面的类名取决于你对应的layout文件名字是什么!!!!!
例如:layout类名为abc.xml。则类名为:AbcBinding。
private ActivityMyDataBindingBinding bindingBinding;
此对象替换原本的setContentView
bindingBinding= DataBindingUtil.setContentView(this, R.layout.activity_my_data_binding);
之后就可以通过此对象直接调用布局文件的View对象,不用实例化!!!也可以直接设置button的点击(下面就不写例子了)。
例如:
bindingBinding.tvMain.setText("abc");
前面有说到,自动创建了一个<data>
它的作用就等同于绑定一个ViewModel。name代表它的别名。到时候在java文件需要用到!!!
<data>
<variable
name="data"
type="com.example.mydatabinding.MyViewModel" />
</data>
直接上完整的代码:
xml: