
在我們的日常開發(fā)中,總會(huì)遇到TextView展示一個(gè)文本,而文本中的部分內(nèi)容是需要?jiǎng)討B(tài)變化的(如從服務(wù)器端獲取),也許你會(huì)使用代碼中字符串拼接的方式完成,當(dāng)然這種方法也是可以的。如果你想讓你的代碼更加的優(yōu)雅,不妨試試使用占位符的方式。
占位符
為了更優(yōu)雅的完成上述的問題,我們可以在strings.xml文件里,使用%s %1$s %d %1$d這些占位符,在頁面設(shè)置展示的時(shí)候我們只需要將真實(shí)展示的文字或者數(shù)據(jù)替換掉就OK了。
| 占位符 | 類型 |
|---|---|
%s |
替換String類型 |
%1$s |
替換String類型 |
%d |
替換int類型 |
%1$d |
替換int類型 |
注:%s 、%d為縮寫方式,只替換一個(gè)位置,可以這么寫
單一占位符使用
在strings.xml定義字符串
<string name="str">截止目前你已經(jīng)消費(fèi)了人民幣%s元</string>在類中使用
String.format(mActivity.getResources().getString(R.string. str),"9999"))
最終的輸出結(jié)果:截止目前你已經(jīng)消費(fèi)了人民幣9999元
多個(gè)占位符使用
在strings.xml中定義
<string name="str">大家好,我叫%1$s,我的愛好是%2$s,%3$s是我最喜歡的明星,如果有機(jī)會(huì)我想對(duì)他說一句:%4$s</string>在類中使用
String.format(mActivity.getResources().getString(R.string. str), "Wit","籃球", "kobe", "你還好嗎"))
最終的輸出結(jié)果:大家好,我叫Wit,我的愛好是籃球,kobe是我最喜歡的明星,如果有機(jī)會(huì)我想對(duì)他說一句:你還好嗎
簡單的一個(gè)方法就可以讓你的代碼更加優(yōu)雅,不妨去試試吧?。?! 當(dāng)然如果你使用的kotlin開發(fā)項(xiàng)目,kotlin中支持字符串模版,使用起來更加簡單。