全國(guó)咨詢(xún)/投訴熱線(xiàn):400-618-4000

首頁(yè)技術(shù)文章正文

Android培訓(xùn)之初探安卓MVVM框架設(shè)計(jì)(下)

更新時(shí)間:2017-04-14 來(lái)源:黑馬程序員Android培訓(xùn)學(xué)院 瀏覽量:

[XML] 純文本查看 復(fù)制代碼
1
<variable name="user" type="cn.itcast.mvvmdemo.User"/>
這句話(huà)代表,聲明了一個(gè)user變量,類(lèi)型是cn.itcast.mvvmdemo.User,當(dāng)然這個(gè)User要提前定義.
[Java] 純文本查看 復(fù)制代碼
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
public class User {
private String firstname;
private String lastname;
public User(String firstname, Stringlastname) {
this.firstname = firstname;
this.lastname = lastname;
}
public String getFirstname() {
return firstname;
}
public void setFirstname(Stringfirstname) {
this.firstname = firstname;
}
public String getLastname() {
return lastname;
}
public void setLastname(Stringlastname) {
this.lastname = lastname;
}
}
[XML] 純文本查看 復(fù)制代碼
1
2
3
<TextView android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="@{user.firstname}"/>

控件布局寫(xiě)法和以前一樣,唯一不同之處在于控件內(nèi)容的賦值部分.以前我們都會(huì)寫(xiě)一個(gè)默認(rèn)值,然后再在代碼中動(dòng)態(tài)修改控件的值.此時(shí)已經(jīng)不需要了. @{user.firstname}代表當(dāng)前TextView的值取自于user對(duì)象中的firstname字段.

2. Activity代碼
[Java] 純文本查看 復(fù)制代碼
01
02
03
04
05
06
07
08
09
10
public class MainActivity extends AppCompatActivity {
private User user;
@Override
protected void onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
ActivityMainBinding binding =DataBindingUtil.setContentView(this, R.layout.activity_main);
user = new User("尼古拉斯凱奇", "趙四");
binding.setUser(user);
}
}


ActivityMainBinding是DataBinding自動(dòng)根據(jù)布局文件生成的類(lèi),不需要手動(dòng)創(chuàng)建.該類(lèi)的命名方式取自于布局文件的名稱(chēng).比如布局文件名叫activity_main,那么生成的類(lèi)名就叫ActivityMainBinding.
當(dāng)使用DataBinding時(shí),需要用DataBindingUtil來(lái)設(shè)置Activity的布局.
binding.setUser(user);表示將user對(duì)象和布局文件綁定在了一起,
user對(duì)象的所有屬性值都可以同步映射到布局文件的控件中.

你會(huì)發(fā)現(xiàn),我們沒(méi)有像往常那樣在activity中findViewById,找到控件后給動(dòng)態(tài)賦值,而是通過(guò)DataBinding的方式直接將對(duì)象的值作用在了布局文件中,從而使我們的代碼更加優(yōu)雅和簡(jiǎn)潔.
本文版權(quán)歸黑馬程序員Android培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:黑馬程序員Android培訓(xùn)學(xué)院
首發(fā):http://android.itheima.com/
分享到:
在線(xiàn)咨詢(xún) 我要報(bào)名
和我們?cè)诰€(xiàn)交談!