Android设计模式MVVM之DataBinding简单使用
谷歌 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简单使用相关推荐
- MVVM与DataBinding简单使用
MVVM与DataBinding简单案例 一.MVVM 1.MVVM是什么 MVVM(Model–View–Viewmodel)是一种软件架构模式. M----->Model层:请求的原始数据 ...
- Android MVVM架构设计模式,从DataBinding开始
MVVM在android端已经出了很久了,但是还是比较少使用到,现在写Android架构设计的时候比较多使用的是MVP,以前在用Angularjs和Vue接触过双向数据绑定的使用和思想,所以看到MVV ...
- Android的MvVM模式探讨: Databinding 与 ViewModel+LiveData+Repository对比
Mvvm模式: Databinding 与 ViewModel+LiveData+Repository 作者:Yagami3zZ,转自:https://www.jianshu.com/p/e7628d ...
- android mvvm_Android MVVM设计模式
android mvvm In this tutorial, we'll be discussing and implementing the Android MVVM Architectural P ...
- Android _ MVVM 设计模式的一种实现方式,最新BAT大厂面试者整理的Android面试题目
前言 首先表明,这篇博客 80% 的内容是翻译自 Christopher Elias 的文章 <Understanding MVVM pattern for Android in 2021> ...
- 《Android构建MVVM》系列(一) 之 MVVM架构快速入门
前言 本文属于<Android构建MVVM>系列开篇,共六个篇章,详见目录树. 该系列文章旨在为Android的开发者入门MVVM架构,掌握其基本开发模式. 辅以讲解Android Arc ...
- Android端MVVM从入门到实战(第一篇) - MVVM和四大官方组件
1.MVVM简介 MVVM是相对于MVC和MVP的一个概念,是一种架构模式. 1.1 MVC 传统的MVC中,View改变通知Controller进行处理,Controller处理结束后通知Model ...
- java/android 设计模式学习笔记(1)--- 单例模式
前段时间公司一些同事在讨论单例模式(我是最渣的一个,都插不上嘴 T__T ),这个模式使用的频率很高,也可能是很多人最熟悉的设计模式,当然单例模式也算是最简单的设计模式之一吧,简单归简单,但是在实际使 ...
- Android官方数据绑定框架DataBinding(二)
继续上篇的博客<Android官方数据绑定框架DataBinding(一)>我们继续学习Data Binding的使用. 十.inflate 不知道大家注意没有,上面的代码我们都是在act ...
最新文章
- 绩效面谈流程,阿里是这样做的
- opencv_4.5.0/OpenCvSharp_已知目标物边界求重心
- 获得无向图连通子图_讲透学烂二叉树(一):图的概念和定义—各种属性特征浅析...
- VC char和TCHAR之间转换
- 天津盈克斯机器人科技_柔性视觉选料 机器人摆盘 柔性振动盘
- cmd 调试java_JAVA学习笔记(初级)--CMD调试
- mac上安装zookeeper教程
- 【2017年第4期】数据管理能力成熟度模型
- U-GAT-IT中的一些细节以及变量含义
- Flex3 Chart学习笔记:PieChart(饼图)
- windows黑窗命令
- keil c51v952详细安装教程
- 2022-07-12
- 小程序代码包大小超出限制的解决办法
- 超全的网络安全精编自学资料合集(64份)
- GSM 网络系统介绍
- ELK入门使用-与springboot集成
- 某知乎x-zse-96参数解析2022/08/09首发
- 推荐印度电影《起跑线》,让家长加入观影一点不为过
- xctf之warmup
热门文章
- URL、Session、Cookies、Server.Transfer、Application和跨页面传送。
- 2006第三季度:10大最糟科技事件
- CUDA程序性能调优
- 如何在Linux终端里用Shell和C输出带颜色的文字
- legacy bios与uefi两种模式安装windows8操作系统的方法
- Linux系统文件名字体不同的颜色都代表什么
- 第一部分:TCL基本知识
- 二十万字C/C++、嵌入式软开面试题全集宝典九
- [云炬创业管理笔记]第三章测试3
- Linux系统vi编辑器执行命令,linux下vi编辑器命令