首先在Gradle Scripts->build.gradle(Module:app)的defaultConfig下加入dataBinding:
dataBinding{
enabled true;
}
也可以写成
dataBinding.enabled=true;
然后在ManiActivity.java中加声明一下binding变量:
ActiyityMainBinding binding;
再将onCreatek 中的setContentView(R.layout.activity_main);换成 binding= DataBindingUtil.setContentView(this,R.layout.activity_main);
然后就可以方便的使用界面中的控件了:
只要使用 binding.控件ID就可以直接使用
activity_main.xml当中会多出一个<data>标签可以用来关连数据:
<data>
<variable
name="data"
type="com.aflfte.orintation.ViewModelWithLiveData" />//关连ViewModel类的名称
</data>
这里同步改
<TextView
android:text="@{String.valueOf(data.likedNumber)}"//让TextView关连ViewModelWithLiveData中的属性值
app:layout_constraintVertical_bias="0.07999998" />
按钮控件加入
<ImageButton
android:onClick="@{()->data.addLikedNumber(1)}"//点击时调用ViewModelWithLiveData的addLikedNumber方法
这样ManiActivity.java中的更新TextView和Button的点击操作代码也可以简化为
viewModelWithLiveData=ViewModelProviders.of(this).get(ViewModelWithLiveData.class);
binding.setData(viewModelWithLiveData);//这里的set后面的名称与activity_main.xml中的<data>name属性相对应
binding.setLifecycleOwner(this);
« 使用viewmodelsavedstate保存数据
|
ViewModel的使用»
|