【Android快捷开发笔记系列】——Data Binding
在开发中遇到一些问题或者新学习了一些知识,总是需要看很多文档,一般有效文档(能帮助我们解决问题的文档)也就那么几篇,假如每次需要重新回顾或者进阶,又得重新去查找,这样既浪费时间又低效率。可能我们会采用浏览器设置书签存储,但是存的多了也就不好查找。所以将一些知识点或者Android体系相关的资料进行整合,形成体系化。便于自己巩固查找,提高学习效率。该文档后续会持续更新.....
1. Data Binding
顾名思义,数据绑定,是Google对MVVM在Android上的一种实现,可以直接绑定数据到xml中,并实现自动刷新。现在最新的版本还支持双向绑定,尽管使用场景不是那么多。
Data Binding可以提升开发效率(节省很多以往需要手写的java代码),性能高(甚至超越手写代码),功能强(强大的表达式支持)。
用途:
- 去掉Activities & Fragments内的大部分UI代码(setOnClickListener, setText, findViewById, etc.)
- XML变成UI的唯一真实来源
- 减少定义view id的主要用途(数据绑定直接发生在xml)
使用:
要开始使用Data Binding,首先需要在Android SDK Manager的支持库里下载该库。请确保您使用的是Android Studio的兼容版本。Android Studio的Data Binding插件需要Android Studio 1.3.0 或 更高版本。目前我使用的是Android Studio3.0,所以使用的时候直接在APP ->build.grodle中添加如下代码即可使用。
a)工作环境
你的app要使用Data Binding,需要添加Data Binding到gradle构建文件里,如下:
android {
....
dataBinding {
enabled = true
}
}
Data Binding插件将会在你的项目内添加必需提供的以及编译配置依赖。
b) 除了添加如上代码外,在自己的布局中需要以
<?xml version="1.0" encoding="utf-8"?>
疑惑:
在实际使用的过程发现了一些使用上的小问题,现记录如下,假如有知道更优解的同仁请留言赐教,以求共同进步。
发现图一代码中的ActivityMainBinding类,是通过DataBindingUtil.setContentView(this,R.layout.activity_main); build代码以后才会生成的,还有ItemGridviewMainBinding等都是如此,那么每次写的时候假如自己不知道该使用哪个api的话,都要build项目,然后去图二所在的目录下(app->build->generated->source->apt->debug/release->包名下)去查找。这样对于不熟悉的人来说,会影响开发效率。
(图一)
public class MainActivity extends AppCompatActivity { private ActivityMainBinding mBinding; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initView(); } private void initView() { mBinding= DataBindingUtil.setContentView(this, R.layout.activity_main); AdapterMainGridview adapterMainGridview = new AdapterMainGridview(this.getApplicationContext()); mBinding.gridviewMain.setAdapter(adapterMainGridview); mBinding.gridviewMain.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) { clickItemShow(position); } }); }
(图二)
参考链接:
(0)从零开始的Android新项目7 - Data Binding入门篇
(1)从零开始的Android新项目8 - Data Binding高级篇
(2)棉花糖给Android带来的Data Bindings(数据绑定库)
(3) Data Binding 从入门到精通
(4)Data Binding(数据绑定)用户指南
(5)Q Q音乐 Android 团队分享 Android Data Binding 数据绑定
(6)Android,Data Binding的官方双向绑定
(7) Android Data Binding 双向绑定
(8)官方文档
更多相关文章
- 一句话锁定MySQL数据占用元凶
- Android开发之adb && 破解开屏图案 && 代码判断当前是否处于锁屏
- Android(安卓)启动另一个App/apk中的Activity实现代码
- Android中使用Volley开源库进行Http网络请求(GET方式)
- android之SQLite数据库应用(二)
- Android(安卓)自定义动画 单个View平面位移以及一组View轮回旋转
- Android使用Sqlite存储数据用法示例
- 关于eclipse中关联各版本Android.jar对应的源代码方法
- Android中ListView动态加载数据 加载中