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: 改变书名