DataBinding的基础使用
将.xml文件转为DataBinding的文件,会出现一个<data>的标签,在其中可以定义变量<variables>或导入<import>:
<data>
<variable
name="idol"
type="com.shopkeeper.databinding.Idol" />
<import type="com.shopkeeper.databinding.StarUtils" />
<variable
name="eventHandler"
type="com.shopkeeper.databinding.EventHandleListener" />
</data>
在绑定数据时,使用@{}语法:
<TextView
android:text="@{idol.name}"/>
<TextView
android:text="@{StarUtils.getDarling(idol.star)}"/>
在绑定事件的监听时,以onClick为例,可以使用@{}传入一个方法:
<Button
android:onClick="@{eventHandler.btnOnClick}"/>
该方法会传入一个View的实例
public class EventHandleListener {
private Context context;
public EventHandleListener(Context context) {
this.context = context;
}
public void btnOnClick(View view){
Toast.makeText(context,"like 02",Toast.LENGTH_SHORT).show();
}
}
也可以绑定一个监听器(可以传入任意参数),以一个viewModel的add方法为例:
<Button
android:onClick="@{()->viewModel.add()}"/>