Android DataBinding(一) 基本使用
来源:互联网 发布:网络上bgm是什么意思 编辑:程序博客网 时间:2024/06/14 15:20
DataBinding是2015年IO大会介绍的一个框架,字面理解即为数据绑定,是Google对MVVM在Android上的一种实现,可以直接绑定数据到xml中,并实现自动刷新。
这篇文章将简单介绍一下DataBinding的使用方法,仅供参考。
添加依赖
在Android studio2.0之后,Android studio内部添加了对于DataBinding的支持,只需要在使用 DataBinding 的 Module 中,如下配置:
android { ...... dataBinding{ enabled = true } ......}
修改Layout文件
我们只需要在原有的布局文件的最外层再添加一个<layout></layout>
标签。
<?xml version="1.0" encoding="utf-8"?><layout xmlns:android="http://schemas.android.com/apk/res/android"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/textView" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="TextView" /> <Button android:id="@+id/button" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Button" /> </LinearLayout></layout>
使用生成类
再Sync Project,在这个过程中Android studio帮我们生成了一个Binding类,我的Layout文件名是activity_main.xml,生成的类为ActivityMainBinding类,命名规则很简单就能看出来。完成后我们就可以在在Java文件中使用ActivityMainBinding类。
ActivityMainBinding binding; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);// setContentView(R.layout.activity_main); binding = DataBindingUtil.setContentView(this, R.layout.activity_main); binding.textView.setText("test"); binding.button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }); }
在这里我们就不会再看见我们熟悉的findViewById了,代码简单、书写方便。
数据绑定
接下来就是给控件绑定数据了。我们新建一个Person类
public class Person { String name; String age; Person(String name,String age) { this.age = age; this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; }}
在Layout文件中使用<data></data>
标记数据来源。
<data> <variable name="Person" type="com.david.databindingdemo.Person" /></data>
在控件中绑定数据
<TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{Person.name}" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="30dp" android:text="@{Person.age}" />
使用固定的@{ }来标记数据来源,这样就将数据与控件绑定在了一起,还需要在java文件中给Set一个对象
Person person = new Person("David","24");binding = DataBindingUtil.setContentView(this, R.layout.activity_main);binding.setPerson(person);
这样我们运行程序,结果如下:
这样,最基础的DataBinding就完成了。
DataBinding的事件监听、表达式、高级绑定、原理等后续会继续完成。
0 0
- Android DataBinding(一) 基本使用
- DataBinding的基本使用(一)
- Android DataBinding (一) 基本用法
- Android DataBinding 项目使用介绍(一)
- Android DataBinding使用详解(一)
- DataBinding使用教程(一):配置与基本使用
- DataBinding使用教程(一):配置与基本使用
- Android DataBinding使用总结(一)
- Android-DataBinding入门系列(一)基本介绍
- DataBinding基本使用(1)
- DataBinding基本使用(2)
- DataBinding基本使用(3)
- DataBinding基本使用(4)
- DataBinding基本使用(5)
- Android使用DataBinding实现双向绑定(一)
- Android学习笔记之--------DataBinding使用一
- DataBinding的基本使用(二)
- DataBinding的基本使用(四)
- 训练8-HTML 更换文本的颜色
- PHP build notes - WARNING: This bison version is not supported for regeneration of the Zend/PHP pars
- B树的插入和删除
- thinkphp3.2架构及源码理解
- MYSQL数据库设计规范与原则
- Android DataBinding(一) 基本使用
- iPhone各版本屏幕尺寸
- Swift3.0 中 字符串、数组、和字典类型的赋值与复制行为
- ndnsim2.3学习总结
- android控件拖动,移动、解决父布局重绘时控件回到原点
- 开发笔记004
- R语言高级算法之人工神经网络(Artificial Neural Network)
- 三维坐标系的旋转矩阵
- Vue框架Element的事件传递broadcast和dispatch方法分析