美文网首页
DataBinding基本使用

DataBinding基本使用

作者: 进击的小大叔 | 来源:发表于2019-12-28 11:52 被阅读0次

简介

Databinding 是2015年谷歌推出的在android上实现mvvm模式的实现方式,即实现了View与Model之间的绑定

基本使用

1.在build.gradle 中开启dataBinding
android {
    ...
    dataBinding{
        enabled =true;
    }
    ...
2.启用 DataBinding 后,这里先来看下如何在布局文件中绑定指定的变量,打开布局文件,选中根布局的 ViewGroup,按住 Alt + 回车键,点击 “Convert to data binding layout”,就可以生成 DataBinding 需要的布局规则。
image.png
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools">
    <data>
    </data>
    <android.support.constraint.ConstraintLayout
        android:id="@+id/cl_content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
  
    </android.support.constraint.ConstraintLayout>
</layout>
3.在activity中使用设置布局setContentView改使用 DataBindingUtil.setContentView
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ActivityMainBinding activityMainBinding = DataBindingUtil.setContentView(this,R.layout.activity_main2);
    }

其中ActivityMainBinding 是DataBinding 框架自动生成的文件(一旦xml 写了layout标签就自动生成该类)命名是以布局名称去除下划线后的帕斯卡命名方式

4.使用xml中的View再也不用findViewById了 ,butterknife 之类的辅助框架也统统靠边了
activityMainBinding.clContent.setonClickListener(v->{
});

是的就是这么简单只要xml中的View声明了id 通过binding 对象就可以直接引用

5.数据绑定
  • 声明在xml中使用的data类 Student
public class Student{
        private String name;
        public void setName(String name){
        this.name = name;
         }
         public String getName(){
              return name;
        }
}
  • 在data标签底下声明需要在xml中使用data类及名称,其中name是自定义的可以任意只要符合命名规范,绑定在TextView 上及使用@{data.name} ,前提是data类中有相应的getter方法
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools">
    <data>
        <variable
            name="data"
            type="com.example.Student"/>
    </data>
    <android.support.constraint.ConstraintLayout
        android:id="@+id/cl_content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
        <TextView
        ....
        android:text="@{data.name}"
        />
    </android.support.constraint.ConstraintLayout>
</layout>
6. 设置绑定数据
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ActivityMainBinding activityMainBinding = DataBindingUtil.setContentView(this,R.layout.activity_main2);
Student student = new Student()
student.setName("sonsdfsdfsdf")
//第一种
// activityMainBinding.setData(student);
//第二种
activityMainBinding.setVariable(BR.data,student);
    }

1.在data中声明的variable 会自动生成对呀的getter跟setter 方法,直接调用即可
2.通用方法是根据variable生成的BR值直接设置value

以上就是关于databinding 的基本使用,关于databinding的深入使用有兴趣的可以看我的另一篇简书DataBinding的深入使用(一)

相关文章

  • DataBinding

    dataBinding的使用 一、databinding的配置方法 二、databinding的基本使用 三、da...

  • Databinding基本使用和原理

    一、Databinding基本使用 实体类 布局文件 基本使用 二、Databinding原理分析 Databin...

  • Databinding资料

    1. DataBinding的基本使用(一) 2. DataBinding的基本使用(二) 3. DataBind...

  • DataBinding设置集合数据,如Map和List

    之前的文章介绍了DataBinding最基本的使用,[DataBinding的简单使用]http://www.ji...

  • DataBinding基本使用

    初始配置 [x] Android Plugin for Gradle 1.5.0-alpha1 或 更高版本(或需...

  • DataBinding基本使用

    简介 Databinding 是2015年谷歌推出的在android上实现mvvm模式的实现方式,即实现了View...

  • DataBinding基本使用(1)

    本文都是接合其他作者的总结,再加上自己实际操作中遇到的一些问题,来综合编写。 DataBinding的配置 因为网...

  • DataBinding基本使用(2)

    咱们直接点,直接上实战,把常用的标签的用会了,用熟了总的有以下几点 数据绑定的几种方式 点击事件绑定的几种方式 双...

  • DataBinding基本使用(4)

    咱们什么都不说 先附上知识点 数据绑定的几种方式点击事件绑定的几种方式双向绑定数据RecycleView的数据绑定...

  • DataBinding基本使用(3)

    咱们什么都不说 先附上知识点 数据绑定的几种方式 点击事件绑定的几种方式 双向绑定数据 RecycleView的数...

网友评论

      本文标题:DataBinding基本使用

      本文链接:https://www.haomeiwen.com/subject/rwfsoctx.html