Android DataBinding 快速入门

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.1
com.android.databinding:baseLibrary:1.1
com.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 国际许可协议进行许可。转载请保留作者及原文链接

你可能感兴趣的:(Android DataBinding 快速入门)