用途:减少Activity/Fragment中UI代码的编写,提供开发效率。

1.使用Gradle引入

    app -> build.gradle

        android{

            ...

            dataBinding{

                enabled = true

            }

        }

2.基础使用

    1)Layout文件改写,在原来的layout文件外套一层标签

            <layout>

                //原来的layout

            </layout>

            注:如果是跟标签需要把原来的命名空间提出来

            <layout   

                xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools">

                //原来的layout

            </layout>

            Data Binding用法

    2)将原Activity中的

            setContentView(R.layout.activity_main);

          替换为

            ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);

          注:(自己理解)ActivityMainBinding 类由系统生成,根据xml中添加layout标签后生成,命名规则根据xml文件activity_main进行首字母和下滑线字母大写。

            之后如果在xml中定义控件的id后,直接用binding.firstText进行引用和操作即可。

            Data Binding用法

    3.UI事件绑定

            使用 setVariable 或者 setXXX进行数据绑定操作。

            1)数据绑定都会放到xml文件中的layout标签的<data>标签中操作:

            2)在xml控件标签中进行引用:

            Data Binding用法

            3)在activity中进行设置数据

             Data Binding用法

            事件绑定

            例如  android:onClick

                    android:onLongClick

                    android:onTextChanged

                    ...

                    (1)方法引用

                            在Activity中创建监听器

                            Data Binding用法

                            注:创建的方法必须与原监听方法保持一致

                            在xml中申明监听变量

                            Data Binding用法

                            在EditText中添加监听

                            Data Binding用法

                            在Activity中设置监听

                            Data Binding用法

                    (2)监听器绑定

                            这里监听方法可以任意起名

                            Data Binding用法

                            xml中绑定监听

                            Data Binding用法

相关文章: