JetPack学习笔记之DataBinding(二)
2020-08-07 本文已影响0人
秀儿2020
JetPack学习笔记之DataBinding(二)
上一篇文章中介绍了DataBinding的基本使用方法,通过DataBinding让布局文件承担了属于Activity的工作,下面介绍使用DataBinding让布局文件响应用户事件的方法。
1、创建事件响应类。
public class EventHandlerListener{
public void changeBookName(View view){
Log.d(TAG,"改变书名");
}
}
注: 事件响应方法必须含有View参数。
2、编写布局文件。
<data>
...
<variable
name="eventHandlerListener"
type="com.example.jetpackpro.databinding.DataBindingActivity.EventHandlerListener" />
</data>
....
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="change book name"
android:onClick="@{eventHandlerListener.changeBookName}"/>
共有两处修改点,一是在data标签中引入了新创建的事件响应类。二是在编写的button中引入事件处理方法。
3、在Activity中注册事件类。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityDataBindingBinding binding = DataBindingUtil.setContentView(this,R.layout.activity_data_binding);
binding.setBook(book);
//注册事件类。
binding.setEventHandlerListener(new EventHandlerListener());
}
运行后可在日志中看到输出
2020-08-07 09:46:58.875 27812-27812/com.example.jetpackpro D/DataBindingActivity: 改变书名