DataBinding框架学习
来源:互联网 发布:淘宝篮球正品店推荐 编辑:程序博客网 时间:2024/05/18 03:11
转自:http://www.jianshu.com/p/87d4b9f30960
DataBinding(框架,数据绑定,对MVVM的一种实现,直接绑定数据到XML中,自动刷新)
1、在module的build.gradle文件中配置
dataBinding{
enabled = true
}
2、在XML文件中添加layout标签和data标签
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data> //创建并声明变量
<variable
name="movie" //变量名和变量类型
type="com.demo.app.Movie"/>
</data>
//下面写你原来的布局就行
</layout>
3、只就数据绑定举个例子
Movie类:
public class Movie{
public String name;
public int price;
public String content;
public void onClick(View view,Movie movie){
//这里面根据获取的movie对象的数据来响应点击事件
}
}
xml文件里面控件绑定数据:
<android.support.design.widget.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginEnd="10dp"
android:layout_marginBottom="10dp"
android:onClick="@{(view)-> movie.onClick(view,movie)}"/> //绑定点击事件
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{movie.name}"/> //使用变量
在Activity里面给XML文件传数据
ViewDataBinding dataBinding = DataBindingUtil.setContentView(ButtonActivity.this
,R.layout.activity_button); //R.layout.activity_button为包含layout标签和data标签的布局文件
Movie movie = new Movie("haha",50,"smile")
dataBinding.setVariable(BR.movie,movie); //BR.movie是上面XML里面声明的movie变量,这里是给变量赋值
到此运行程序你会发现点击事件有响应了,TextView上面显示的为haha,表明数据绑定成功。
- DataBinding框架学习
- Google DataBinding 框架学习资料
- Android 官方框架DataBinding学习笔记
- DataBinding框架
- DataBinding 学习
- 数据绑定框架:Databinding
- DataBinding框架初体验
- Android官方框架DataBinding
- Databinding框架简介
- DataBinding框架初体验
- Android MVVM框架 DataBinding
- DataBinding学习(一)
- DataBinding学习(二)
- DataBinding学习(三)
- DataBinding学习(四)
- DataBinding学习(五)
- 学习DataBinding文档整理
- DataBinding学习入门篇
- js\jquery基础知识(一)
- 解决网页刷新时布局紊乱(jquery ready和load事件)
- springmvc获取resquest/response
- vue-router获取上一页面的url信息
- 平衡树:treap学习笔记(2)
- DataBinding框架学习
- 【银行】2016年中国银行信息科技岗 笔试+面试经验汇总
- 深度克隆
- 微信开放平台开发——网页微信扫码登录(OAuth2.0)
- PCIE 关于BAR的相关学习
- mac如何导出cer私钥
- c++之函数模板
- 在table里动态获取tr里的所有数据
- PAT乙级 C语言竞赛