Android DataBinding 快速入門

DataBinding 的導(dǎo)入

DataBinding有兩種導(dǎo)入方式,

(1). gradle版本大于1.5.0的版本,只需修改當前工程的build.gradle文件,指定啟用DataBinding蔼夜,系統(tǒng)會自動導(dǎo)入許多DataBinding包

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    //開啟DataBinding
    dataBinding {
        enabled true;
    }

}

Android Studio 1.5 版本時(具體是Gradle版本還是Studio問題就不探究了),如果需要使用到相應(yīng)的類压昼,必須在dependencies中自己導(dǎo)入相應(yīng)引用庫求冷,一般會用到的大致如下

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

(2). 如果gradle版本小于1.5.0或者要指定DataBinding的版本就比較麻煩了,并且新版本已經(jīng)放棄使用了(僅支持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 的簡單應(yīng)用

如果只是剛接觸并想快速使用,不深入了解是很簡單的窍霞,DataBinding可以讓你省去煩人findViewById匠题,雖然有些浪費它的功能。
這方法很簡單但金,只需在布局文件最外圍為加入<layout></layout> 系統(tǒng)會根據(jù)布局文件名字生成對應(yīng)的類文件

<layout>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/activity_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context="silicar.sample.MainActivity">

        <TextView
            android:id="@+id/name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/app_name"/>

    </RelativeLayout>
</layout>

然后通過DataBindingUtil獲取對應(yīng)布局類使用

// 在Activity設(shè)置布局時
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版本經(jīng)常出現(xiàn)錯誤需要重新Mark Project韭山,還未使用的不推薦,等穩(wěn)定后再使用冷溃,butterknife配合插件使用還是更方便钱磅,另外Kotlin也是不錯的選擇。

最新版AS 2.2已經(jīng)不存在該問題了似枕,并且要使用DataBinding相關(guān)類的使用盖淡,也不需要在導(dǎo)入相應(yīng)的引用庫,是時候開始全面推廣了菠净,它可不只是讓你省去findViewById那么簡單禁舷,畢竟是Google親兒子會持續(xù)維護,而Kotlin的Andorid擴展插件只能在Kotln項目使用毅往。本來已經(jīng)放棄DataBinding了牵咙,更新Studio嘗試了下,Bug已修復(fù)那就愉快的玩耍吧攀唯,DataBinding的用法之后繼續(xù)洁桌,同時我們可以基于它的特點對ListView的Adapter進行優(yōu)化。

本作品采用知識共享署名-非商業(yè)性使用-相同方式共享 4.0 國際許可協(xié)議進行許可侯嘀。轉(zhuǎn)載請保留作者及原文鏈接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末另凌,一起剝皮案震驚了整個濱河市谱轨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌吠谢,老刑警劉巖土童,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異工坊,居然都是意外死亡献汗,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進店門王污,熙熙樓的掌柜王于貴愁眉苦臉地迎上來罢吃,“玉大人,你說我怎么就攤上這事昭齐∧蛘校” “怎么了?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵阱驾,是天一觀的道長就谜。 經(jīng)常有香客問我,道長啊易,這世上最難降的妖魔是什么吁伺? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮租谈,結(jié)果婚禮上篮奄,老公的妹妹穿的比我還像新娘。我一直安慰自己割去,他們只是感情好窟却,可當我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著呻逆,像睡著了一般夸赫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上咖城,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天茬腿,我揣著相機與錄音,去河邊找鬼宜雀。 笑死切平,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的辐董。 我是一名探鬼主播悴品,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了苔严?” 一聲冷哼從身側(cè)響起定枷,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎届氢,沒想到半個月后欠窒,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡悼沈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年贱迟,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片絮供。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖茶敏,靈堂內(nèi)的尸體忽然破棺而出壤靶,到底是詐尸還是另有隱情,我是刑警寧澤惊搏,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布贮乳,位于F島的核電站,受9級特大地震影響恬惯,放射性物質(zhì)發(fā)生泄漏向拆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一酪耳、第九天 我趴在偏房一處隱蔽的房頂上張望浓恳。 院中可真熱鬧,春花似錦碗暗、人聲如沸颈将。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽晴圾。三九已至,卻和暖如春噪奄,著一層夾襖步出監(jiān)牢的瞬間死姚,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工勤篮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留都毒,地道東北人。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓叙谨,卻偏偏與公主長得像温鸽,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,630評論 2 359

推薦閱讀更多精彩內(nèi)容