谷歌 I/O大会上介绍了一个非常厉害的新框架DataBinding, 数据绑定框架给我们带来了很大的方便,以前我们可能需要在每个Activity里写很多的findViewById,不仅麻烦,还增加了代码的耦合性,如果我们使用DataBinding,就可以抛弃那么多的findViewById,省时省力。说到这里,其实网上也有很多快速的注解框架,但是注解框架与DataBinding想比还是不好用,而且官网文档说DataBinding还能提高解析XML的速度,其实DataBinding的好用,不仅仅体现在可以省去使用很多啰嗦findViewById,还有很多。往下看你就会明白的。

1.添加依赖

android {....dataBinding {enabled = true
    }
}

2.编写Javabean

public class User {private String name;
    private String age;

    public User(String name, String age) {this.name = name;
        this.age = age;
    }public String getName() {return name;
    }public void setName(String name) {this.name = name;
    }public String getAge() {return age;
    }public void setAge(String age) {this.age = age;
    }
}

3.编写xml布局

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
   >

    <data>
        <variable
            name="user"//变量名称
            type="com.example.admin.mvvmuse.User" />//类的全路径
    </data>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@{user.name}" />//赋值

        <TextView
            android:onClick="@{clickListener}"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@{user.age}" />
    </LinearLayout>
</layout>

4.在Activity中绑定数据

public class MainActivity extends Activity {@Override
    protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
        //setContentView(R.layout.activity_main);
        ActivityMainBinding binding = DataBindingUtil.setContentView(this,R.layout.activity_main);
        User user = new User("mike","23");
        binding.setUser(user);

}}

5.绑定事件

<data>
    <variable
        name="clickListener"
        type="android.view.View.OnClickListener" />

   ---------
</data>
<TextView
            android:onClick="@{clickListener}"//引用变量
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@{user.age}" />

6.添加点击事件

public class MainActivity extends Activity {@Override
    protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
        //setContentView(R.layout.activity_main);
        ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
        User user = new User("mike", "23");
        binding.setUser(user);

        binding.setClickListener(new View.OnClickListener() {@Override
            public void onClick(View v) {Toast.makeText(MainActivity.this, "nihao", Toast.LENGTH_SHORT).show();
            }});

    }

Android设计模式MVVM之DataBinding简单使用相关推荐

  1. MVVM与DataBinding简单使用

    MVVM与DataBinding简单案例 一.MVVM 1.MVVM是什么 MVVM(Model–View–Viewmodel)是一种软件架构模式. M----->Model层:请求的原始数据 ...

  2. Android MVVM架构设计模式,从DataBinding开始

    MVVM在android端已经出了很久了,但是还是比较少使用到,现在写Android架构设计的时候比较多使用的是MVP,以前在用Angularjs和Vue接触过双向数据绑定的使用和思想,所以看到MVV ...

  3. Android的MvVM模式探讨: Databinding 与 ViewModel+LiveData+Repository对比

    Mvvm模式: Databinding 与 ViewModel+LiveData+Repository 作者:Yagami3zZ,转自:https://www.jianshu.com/p/e7628d ...

  4. android mvvm_Android MVVM设计模式

    android mvvm In this tutorial, we'll be discussing and implementing the Android MVVM Architectural P ...

  5. Android _ MVVM 设计模式的一种实现方式,最新BAT大厂面试者整理的Android面试题目

    前言 首先表明,这篇博客 80% 的内容是翻译自 Christopher Elias 的文章 <Understanding MVVM pattern for Android in 2021> ...

  6. 《Android构建MVVM》系列(一) 之 MVVM架构快速入门

    前言 本文属于<Android构建MVVM>系列开篇,共六个篇章,详见目录树. 该系列文章旨在为Android的开发者入门MVVM架构,掌握其基本开发模式. 辅以讲解Android Arc ...

  7. Android端MVVM从入门到实战(第一篇) - MVVM和四大官方组件

    1.MVVM简介 MVVM是相对于MVC和MVP的一个概念,是一种架构模式. 1.1 MVC 传统的MVC中,View改变通知Controller进行处理,Controller处理结束后通知Model ...

  8. java/android 设计模式学习笔记(1)--- 单例模式

    前段时间公司一些同事在讨论单例模式(我是最渣的一个,都插不上嘴 T__T ),这个模式使用的频率很高,也可能是很多人最熟悉的设计模式,当然单例模式也算是最简单的设计模式之一吧,简单归简单,但是在实际使 ...

  9. Android官方数据绑定框架DataBinding(二)

    继续上篇的博客<Android官方数据绑定框架DataBinding(一)>我们继续学习Data Binding的使用. 十.inflate 不知道大家注意没有,上面的代码我们都是在act ...

最新文章

  1. 绩效面谈流程,阿里是这样做的
  2. opencv_4.5.0/OpenCvSharp_已知目标物边界求重心
  3. 获得无向图连通子图_讲透学烂二叉树(一):图的概念和定义—各种属性特征浅析...
  4. VC char和TCHAR之间转换
  5. 天津盈克斯机器人科技_柔性视觉选料 机器人摆盘 柔性振动盘
  6. cmd 调试java_JAVA学习笔记(初级)--CMD调试
  7. mac上安装zookeeper教程
  8. 【2017年第4期】数据管理能力成熟度模型
  9. U-GAT-IT中的一些细节以及变量含义
  10. Flex3 Chart学习笔记:PieChart(饼图)
  11. windows黑窗命令
  12. keil c51v952详细安装教程
  13. 2022-07-12
  14. 小程序代码包大小超出限制的解决办法
  15. 超全的网络安全精编自学资料合集(64份)
  16. GSM 网络系统介绍
  17. ELK入门使用-与springboot集成
  18. 某知乎x-zse-96参数解析2022/08/09首发
  19. 推荐印度电影《起跑线》,让家长加入观影一点不为过
  20. xctf之warmup

热门文章

  1. URL、Session、Cookies、Server.Transfer、Application和跨页面传送。
  2. 2006第三季度:10大最糟科技事件
  3. CUDA程序性能调优
  4. 如何在Linux终端里用Shell和C输出带颜色的文字
  5. legacy bios与uefi两种模式安装windows8操作系统的方法
  6. Linux系统文件名字体不同的颜色都代表什么
  7. 第一部分:TCL基本知识
  8. 二十万字C/C++、嵌入式软开面试题全集宝典九
  9. [云炬创业管理笔记]第三章测试3
  10. Linux系统vi编辑器执行命令,linux下vi编辑器命令