DataBinding 的导入

DataBinding有两种导入方式,

(1). gradle版本大于1.5.0的版本,只需修改当前工程的build.gradle文件,指定启用DataBinding,系统会自动导入许多DataBinding包

android {    compileSdkVersion 23    buildToolsVersion "23.0.3"    //开启DataBinding    dataBinding {        enabled true;    }}

Android Studio 1.5 版本时(具体是Gradle版本还是Studio问题就不探究了),如果需要使用到相应的类,必须在dependencies中自己导入相应引用库,一般会用到的大致如下

com.android.databinding:library:1.1com.android.databinding:baseLibrary:1.1com.android.databinding:adapters:1.1

(2). 如果gradle版本小于1.5.0或者要指定DataBinding的版本就比较麻烦了,并且新版本已经放弃使用了(仅支持1.0-rc0到rc4,当考古来研究吧),首先在项目的buildscript添加引用的版本

buildscript {    dependencies {        classpath 'com.android.tools.build:gradle:2.1.2'        classpath "com.android.databinding:dataBinder:1.0-rc4"        // NOTE: Do not place your application dependencies here; they belong        // in the individual module build.gradle files    }}

然后在工程的gradle文件加入apply plugin: 'com.android.databinding'即可使用了

DataBinding 的简单应用

如果只是刚接触并想快速使用,不深入了解是很简单的,DataBinding可以让你省去烦人findViewById,虽然有些浪费它的功能。
这方法很简单,只需在布局文件最外围为加入 系统会根据布局文件名字生成对应的类文件

                

然后通过DataBindingUtil获取对应布局类使用

// 在Activity设置布局时ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);binding.name.setText("hello word");//在ListView或RecycleView等Adapter中ActivityMainBinding bindings = DataBindingUtil.inflate(getLayoutInflater(), R.layout.activity_main, null, false);

DataBinding 存在的问题

AS 1.5版本经常出现错误需要重新Mark Project,还未使用的不推荐,等稳定后再使用,butterknife配合插件使用还是更方便,另外Kotlin也是不错的选择。

最新版AS 2.2已经不存在该问题了,并且要使用DataBinding相关类的使用,也不需要在导入相应的引用库,是时候开始全面推广了,它可不只是让你省去findViewById那么简单,毕竟是Google亲儿子会持续维护,而Kotlin的Andorid扩展插件只能在Kotln项目使用。本来已经放弃DataBinding了,更新Studio尝试了下,Bug已修复那就愉快的玩耍吧,DataBinding的用法之后继续,同时我们可以基于它的特点对ListView的Adapter进行优化。

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。转载请保留作者及原文链接

更多相关文章

  1. 一款常用的 Squid 日志分析工具
  2. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  3. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  4. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  5. android Eclipse执行项目提示错误: unable to execute dex: GC or
  6. 搭建Android编译环境
  7. 【Android(安卓)开发教程】AbsoluteLayout绝对布局
  8. Android(安卓)全屏或者取消标题栏
  9. Eclipse导入Android项目的正确方法

随机推荐

  1. [控件]SeekBar拖动条
  2. Google Play Services to Beat Android(
  3. Android(安卓)Studio之导入外部so库
  4. android——ObjectAnimator动画(一)
  5. java.lang.NoClassDefFoundError: com.ja
  6. android in practice_Using external sto
  7. android手势缩放
  8. 仿Google应用动态隐藏显示状态栏
  9. onMeasure的写法
  10. Android日期选择组件与时间选择组…