by 蜀漢玫瑰
廢話不說了直接上步驟泪勒。
第一步:首先在項(xiàng)目gradle文件中的 android節(jié)點(diǎn)里面加入如下三行
第二步:接下來我們?cè)谛枰獢?shù)據(jù)綁定的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ù)源有了,xml也定義好了漫蛔,接下來我們進(jìn)入第一個(gè)重點(diǎn)嗜愈,那就是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)
其中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á)式書寫,如圖:
表達(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í)用法瘫辩,謝謝各位看官的觀賞,明天見坛悉。