在开发中遇到一些问题或者新学习了一些知识,总是需要看很多文档,一般有效文档(能帮助我们解决问题的文档)也就那么几篇,假如每次需要重新回顾或者进阶,又得重新去查找,这样既浪费时间又低效率。可能我们会采用浏览器设置书签存储,但是存的多了也就不好查找。所以将一些知识点或者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)官方文档

 

更多相关文章

  1. 一句话锁定MySQL数据占用元凶
  2. Android开发之adb && 破解开屏图案 && 代码判断当前是否处于锁屏
  3. Android(安卓)启动另一个App/apk中的Activity实现代码
  4. Android中使用Volley开源库进行Http网络请求(GET方式)
  5. android之SQLite数据库应用(二)
  6. Android(安卓)自定义动画 单个View平面位移以及一组View轮回旋转
  7. Android使用Sqlite存储数据用法示例
  8. 关于eclipse中关联各版本Android.jar对应的源代码方法
  9. Android中ListView动态加载数据 加载中

随机推荐

  1. android中监听软键盘的弹出与隐藏,并获取
  2. android NDK安装
  3. android 网络下载PDF文件并打开PDF文件内
  4. android实现wifi与移动数据的切换
  5. 【Android 周末回眸】2011.09.27-2011.10
  6. android广播发送与接收演示
  7. Android handler用法详解二(例1)
  8. Android Service的思考(4)
  9. Android lunch分析以及产品分支构建
  10. 七个月Android学习工作总结(随时补充)