DataBinding系列之基礎(chǔ)入門篇

by 蜀漢玫瑰

廢話不說了直接上步驟泪勒。

第一步:首先在項(xiàng)目gradle文件中的 android節(jié)點(diǎn)里面加入如下三行

build.gradle中android節(jié)點(diǎn)

第二步:接下來我們?cè)谛枰獢?shù)據(jù)綁定的XML布局文件中做如下修改:

XML示例

對(duì)上圖進(jìn)行說明鸯两,下面部分為我們常規(guī)的布局蓝谨,只是在其最外層套上了<layout >...</layout>節(jié)點(diǎn)臂容,然后就是其中的<data></data>節(jié)點(diǎn)哩治,他就相當(dāng)于我們要引入到xml文件中的數(shù)據(jù)定義猿规,如圖其中的<variable></variable>節(jié)點(diǎn)就是對(duì)每一個(gè)數(shù)據(jù)引入的定義芬萍,這時(shí)候我們的xml就擁有了數(shù)據(jù)綁定能力了尤揣,具體使用看下面。

第三步:接下來我們就可以定義我們要綁定的數(shù)據(jù)源以及對(duì)Activity的修改了:

數(shù)據(jù)源無非就是有屬性有set()get()方法柬祠,如圖:

數(shù)據(jù)源Data

好了北戏,數(shù)據(jù)源有了,xml也定義好了漫蛔,接下來我們進(jìn)入第一個(gè)重點(diǎn)嗜愈,那就是Activity的書寫,如圖:

Activity定義

先看圖中標(biāo)記的2行地方莽龟,首先ActivityMainBinding這個(gè)類如何而來蠕嫁??毯盈?這是我們剛剛定義了XML文件的<layout>標(biāo)簽之后剃毒,系統(tǒng)根據(jù)該xml文件自動(dòng)生成的,也就是說搂赋,以后你任何XML文件中定義了<layout>標(biāo)簽赘阀,系統(tǒng)都會(huì)根據(jù)xml名稱生成對(duì)應(yīng)的binding類,其類名規(guī)則對(duì)比一下就知道脑奠,他是從左到右基公,下劃線之后首字母大寫,這個(gè)大家自己去比對(duì)宋欺。

其次轰豆,我們知道了ActivityMainBinding的由來胰伍,那么接下來首先是給他實(shí)例化,通過DataBindingUtil中的靜態(tài)方法setContent(...)來進(jìn)行實(shí)例化秒咨,大家可以點(diǎn)進(jìn)去看看源碼喇辽,不是很困難,這就不多說了雨席,說白了這個(gè)方法其實(shí)也就是我們Activity中的setContent方法效果是差不多的。

接下來我們實(shí)例化了ActivityMainBinding之后就可以對(duì)其進(jìn)行一些操作了吠式,比如setData();

恩陡厘,疑問來了,這個(gè)setData又是依據(jù)什么生成的呢特占?好糙置,跟著再看我們xml里面的<data>節(jié)點(diǎn)

xml中data節(jié)點(diǎn)

其中type是我們要引用的數(shù)據(jù)類,name是我們?yōu)樵摂?shù)據(jù)類定義在xml中的一個(gè)名稱是目,就相當(dāng)于在我們Java語言中定義一個(gè) private DataBean data谤饭;系統(tǒng)就會(huì)根據(jù)這個(gè)name生成對(duì)應(yīng)的set方法,比如setData懊纳,參數(shù)就是type所指的類揉抵。

接下來我們?cè)趚ml中要使用該數(shù)據(jù)類的地方進(jìn)行表達(dá)式書寫,如圖:

data表達(dá)式使用

表達(dá)式以@{}格式書寫嗤疯,在里面我們可以使用剛剛在<data>節(jié)點(diǎn)中定義的變量name冤今,如data,他可以直接調(diào)用對(duì)應(yīng)的屬性茂缚,如data.name等戏罢,這時(shí)候我們就成功的把DataBean類中的name和desc分別與xml中的TextView進(jìn)行了綁定,在MainActivity中調(diào)用binding.setData()方法就自動(dòng)為這TextView進(jìn)行了賦值脚囊。

好了龟糕,到此為止,我們的基礎(chǔ)用法介紹完畢悔耘,如果你覺得這很神奇讲岁,那我只能告訴你,以上僅僅是DataBinding所做的冰山一角淮逊,如果你覺得這不神奇催首,也就那樣,那我只能告訴你泄鹏,等你學(xué)完DataBinding的全部用法郎任,你絕對(duì)要打打自己的臉了~~~

總結(jié)一下,本章我們學(xué)到的主要是DataBinding的引入和初次使用备籽,步驟總結(jié)如下:

1.build.gradle文件中加入開啟DataBinding舶治。

2.創(chuàng)建數(shù)據(jù)源DataBean分井,這個(gè)就是我們平常用的Bean(包含屬性和set,get方法的類)霉猛。

3.xml中添加<layout>和<data>節(jié)點(diǎn)尺锚,讓其成為數(shù)據(jù)綁定的xml并且系統(tǒng)自動(dòng)生成對(duì)應(yīng)的工具類。

4.在Activity中使用系統(tǒng)自動(dòng)生成的binding工具類進(jìn)行相關(guān)實(shí)例化設(shè)置數(shù)據(jù)操作惜浅。

下章我們將進(jìn)一步講解DataBinding的中級(jí)用法瘫辩,謝謝各位看官的觀賞,明天見坛悉。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末伐厌,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子裸影,更是在濱河造成了極大的恐慌挣轨,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件轩猩,死亡現(xiàn)場(chǎng)離奇詭異卷扮,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)均践,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門晤锹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人浊猾,你說我怎么就攤上這事抖甘。” “怎么了葫慎?”我有些...
    開封第一講書人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵衔彻,是天一觀的道長。 經(jīng)常有香客問我偷办,道長艰额,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任椒涯,我火速辦了婚禮柄沮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘废岂。我一直安慰自己祖搓,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開白布湖苞。 她就那樣靜靜地躺著拯欧,像睡著了一般。 火紅的嫁衣襯著肌膚如雪财骨。 梳的紋絲不亂的頭發(fā)上镐作,一...
    開封第一講書人閱讀 49,185評(píng)論 1 284
  • 那天藏姐,我揣著相機(jī)與錄音,去河邊找鬼该贾。 笑死羔杨,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的杨蛋。 我是一名探鬼主播兜材,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼六荒!你這毒婦竟也來了护姆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤掏击,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后秩铆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體砚亭,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年殴玛,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了捅膘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡滚粟,死狀恐怖寻仗,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情凡壤,我是刑警寧澤署尤,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站亚侠,受9級(jí)特大地震影響曹体,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜硝烂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一箕别、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧滞谢,春花似錦串稀、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至禾酱,卻和暖如春微酬,著一層夾襖步出監(jiān)牢的瞬間绘趋,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來泰國打工颗管, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留陷遮,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓垦江,卻偏偏與公主長得像帽馋,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子比吭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344

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