在android項目中位喂,google官方建議我們使用字符串是不要使用硬編碼方式(在布局文件或代碼中直接書寫字符串),而是使用strings.xml
中的資源引用侈百。但在日常開發(fā)中吩谦,如果我們不需要實現(xiàn)國際化,并且在小公司的話幾乎都是怎么方便怎么來吧本刽,我是這個想的O(∩_∩)O
但在實際開發(fā)過程中,我們可能會遇到這樣的情況弧关,一串多處重復使用的文案盅安,在版本迭代過程中,如果產(chǎn)品經(jīng)理需要我們統(tǒng)一修改這些文案時世囊,我們就會頭疼了别瞭。當然你也可以使用全局替換快捷鍵。其實這類可以抽取到strings.xml
里面株憾,并且如果需要修改我們可以使用占位符蝙寨,這樣到時候只需要修改占位符的文字就可以了。我猜大家看到這里腦袋里浮現(xiàn)的肯定是通過String.format
來實現(xiàn)嗤瞎,這樣當然也是一種辦法墙歪,不過這樣的話,我們只能在代碼中去實現(xiàn)贝奇,如果我們僅僅是需要給一個靜態(tài)的控件復制(在xml
布局文件中使用)就頭疼了虹菲,這樣實現(xiàn)不了,除非我們項目中使用的是databinding
掉瞳。下面畫重點了哈:
另一種字符串占位符實現(xiàn)方式
我們可以在strings.xml
首行添加如下代碼即可實現(xiàn)在xml
中實現(xiàn)占位符的效果
<!DOCTYPE resources [<!ENTITY appname "哈哈">]>
<resources>
<string name="app_name">&appname;應用</string>
</resources>
如果需要抽取多個占位符呢毕源?
<!DOCTYPE resources [
<!ENTITY appname "哈哈">
<!ENTITY author "作者">
]>
<resources>
<string name="app_name">&appname;應用</string>
<string name="app_name">&appname;應用由&author;開發(fā)</string>
</resources>
看就是這么簡單,我們就可以在布局文件中直接引用了陕习,到時候統(tǒng)一修改占位符里面對應的文案即可(●ˇ?ˇ●)