# DataBindingTest **Repository Path**: giteetest15873/DataBindingTest ## Basic Information - **Project Name**: DataBindingTest - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-05-19 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 【Android】DataBinding库(MVVM设计模式) ** *本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 ** ##什么是MVVM 说到DataBinding,就有必要先提起MVVM设计模式。 **Model–View–ViewModel**(**MVVM**) 是一个软件架构设计模式,相比MVVM,大家对MVC或MVP可能会更加熟悉。 - MVC:(VIew-Model-Controller) 早期将VIew、Model、Controller代码块进行划分,使得程序大部分分离,降低耦合。 - MVP:(VIew-Model-Presenter)由于MVC中View和Model之间的依赖太强,导致Activity中的代码过于臃肿。为了他们可以绝对独立的存在,慢慢演化出了MVP。在MVP中View并不直接使用Model,它们之间的通信是通过 Presenter (MVC中的Controller)来进行的。 - MVVM:(Model–View–ViewModel) MVVM可以算是MVP的升级版,将 Presenter 改名为 ViewModel。关键在于View和Model的双向绑定,当View有用户输入后,ViewModel通知Model更新数据,同理Model数据更新后,ViewModel通知View更新。 ##Data Binding 在Google I/O 2015上,伴随着Android M预览版发布的[Data Binding](https://developer.android.com/tools/data-binding/guide.html)兼容函数库。 不知道要扯什么了,还是直接上代码,来看看Data Binding的魅力吧。 - ####环境要求 Data Binding对使用的环境还是有一定要求的(这货有点挑) *Android Studio版本在1.3以上* *gradle的版本要在1.5.0-alpha1以上* *需要在Android SDK manager中下载Android Support repository* 然后在对应的Module的build.gradle中添加 ```java android { .... dataBinding { enabled =true } } ``` > Gradle需要升级版本的可以参考[升级Gradle版本](http://www.jianshu.com/p/00beddbe3dbc) - ####创建对象 创建一个User类 ```java public class User { private String firstName; private String lastName; public User(String firstName, String lastName) { this.firstName = firstName; this.lastName = lastName; } public String getFirstName() { return this.firstName; } public String getLastName() { return this.lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public void setFirstName(String firstName) { this.firstName = firstName; } } ``` - ####布局 在activity_main.xml中布局 ```xml