Android设计模式MVVM之DataBinding简单使用
来源:互联网 发布:网络运营培训课程 编辑:程序博客网 时间:2024/06/05 04:18
谷歌 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>
6.添加点击事件<TextView android:onClick="@{clickListener}"//引用变量 android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{user.age}" />
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(); } }); }
0 0
- Android设计模式MVVM之DataBinding简单使用
- Android DataBinding(MVVM设计模式)
- Android之MVVM开发模式和DataBinding的简单用法
- Android DataBinding库(MVVM设计模式)
- 【Android】DataBinding库(MVVM设计模式)
- Android DataBinding库(MVVM设计模式)
- Android DataBinding库(MVVM设计模式)
- Android DataBinding库(MVVM设计模式)
- Android开发模式MVVM之DataBinding
- Android MVVM之Databinding(二) 使用篇
- Android设计模式之MVVM
- Android MVVM 之DataBinding,BindingAdapter及component
- Android MVVM 初探之 DataBinding 显示数据
- Android MVVM 初探之 DataBinding 双向绑定
- Android Databinding简单使用
- MVVM之DataBinding
- MvvM 之databinding
- MVVM之DataBinding入门
- Python装饰器
- drawable各种属性
- js登录验证
- 微信预约系统
- Java字符串_String
- Android设计模式MVVM之DataBinding简单使用
- 普通工程师和高级工程师的差别在哪里?如何快速突破?
- HDU1197 Specialized Four-Digit Numbers
- Android开发基础之Button按钮的简单用法
- HTTPS和HTTP的区别
- maven总结
- Mybatis 模糊查询和动态sql语句
- 使用SurfaceView播放视频,调节进度,滑动屏幕调节音量并显示音量。
- c++实验5