JetPack学习笔记

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: 改变书名
上一篇下一篇

猜你喜欢

热点阅读