Android strings.xml资源文件 使用技巧
生活随笔
收集整理的這篇文章主要介紹了
Android strings.xml资源文件 使用技巧
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一:XML轉(zhuǎn)義字符
在strings.xml文件中定義字符串時(shí),特殊字符有時(shí)需要使用轉(zhuǎn)義字符代替,如:字符之間的空格用 Space 鍵是能顯示出效果的的,但是字符后面如果需要添加空格,直接 Space 鍵是不管用的,此時(shí) 空格應(yīng)該用? 來表示(注意有分號(hào)),例如: <string name="top10_item_title">第%1$s名:   %2$s號(hào)%3$s</string>以下為XML標(biāo)志符的數(shù)字和字符串轉(zhuǎn)義符? "???? (" 或 ")?
'???? (' 或 ')?
&???? (& 或 &)?
lt(<) (< 或 <)?
gt(>) (> 或 >)? @ ? ?(@) 版權(quán)符號(hào)? ? ??(©)
下面的字符在 [XML]中被定義為 空白(whitespace)字符:?
空格 ( )?
Tab (	)?
回車 (
)?
換行 (
)?
strings.xml文件定義%符號(hào),需要用%%來表示;
<string name="hello">大家好,歡迎來到eoeandroid社區(qū)。\nwelcome to here!</string>? ? ? ? 字體換行的形式輸出
如遇到如下錯(cuò)誤的時(shí)候說明你需要在單引號(hào)簽名加轉(zhuǎn)義字符(\):?
Description Resource Path Location Type error: Apostrophe not preceded by \ (in Search' Titles) strings.xml?
只要將定義的字符串中的單引號(hào)('), 修改為(\')即可?
二:變量文本($s)提示(本地化數(shù)據(jù)交換的格式標(biāo)準(zhǔn)_xliff)
如:<string name="top10_item_title_data_vote">得票: %1$s   得票比例: %2$s</string> %1表示第一個(gè)變量的位置,%2表示第二個(gè)變量的位置,以此類推,.......%n表示第n個(gè)變量的位置; $s代表字符串類型; 在代碼中使用如下:
String.format(getString(R.string.top10_item_title_data_vote), "字符串1","字符串2");
如遇到如下錯(cuò)誤提示:
Multiple annotations found at this line:?
- error: Multiple substitutions specified in non-positional format; did you mean to add the formatted="false"?
attribute??
- error: Unexpected end tag string?
這是由于新的SDK(雖然從沒用過老的)采用了新版本的aapt(Android項(xiàng)目編譯器), 這個(gè)版本的aapt編譯起來會(huì)比老版本更加的嚴(yán)格, 在Android最新的開發(fā)文檔中描述String的部分,已經(jīng)說明了如何去設(shè)置 %s 等符號(hào), 可以點(diǎn)擊去看.?
簡單解決方法就是:把%s之類的變量格式替換成%1$s, %1表示第一個(gè)位置的變量, $s表示為字符串類型?
三:Android通過文件名引用資源文件
使用方法: <span style="font-size:12px;">public int getIdentifier (String name, String defType, String defPackage)</span>
說明:name表示:資源文件名字; ? defType表示資源類型,如"string"、"drawable"等; ?defPackage表示應(yīng)用的包名;
使用案例如下:
如需要根據(jù)具體條件,使用不同的圖片:
int index = 1; imageView.setImageResource(getResources().getIdentifier("image_" + index, "drawable", mActivity.getPackageName()));
注意:如果使用imageView.setBackgroundResource....,則設(shè)置無效,路過的高手知道為什么請(qǐng)指教!
附件:部分轉(zhuǎn)移字符串
其他字符
| 字符 | 十進(jìn)制 | 轉(zhuǎn)義字符 | 字符 | 十進(jìn)制 | 轉(zhuǎn)義字符 | 字符 | 十進(jìn)制 | 轉(zhuǎn)義字符 |
| ? | ¡ | ¡ | á | Á | Á | á | á | á |
| ¢ | ¢ | ¢ | ? | Â | ˆ | a | â | â |
| £ | £ | £ | ? | Ã | Ã | ? | ã | ã |
| ¤ | ¤ | ¤ | ? | Ä | Ä | ? | ä | ä |
| ¥ | ¥ | ¥ | ? | Å | ˚ | ? | å | å |
| | | ¦ | ¦ | ? | Æ | Æ | ? | æ | æ |
| § | § | § | ? | Ç | Ç | ? | ç | ç |
| ¨ | ¨ | ¨ | è | È | È | è | è | è |
| ? | © | © | é | É | É | é | é | é |
| a | ª | ª | ê | Ê | Ê | ê | ê | ê |
| ? | « | « | ? | Ë | Ë | ? | ë | ë |
| ? | ¬ | ¬ | ì | Ì | Ì | ì | ì | ì |
| \x7f | ­ | ­ | í | Í | Í | í | í | í |
| ? | ® | ® | ? | Î | Î | ? | î | î |
| ˉ | ¯ | ¯ | ? | Ï | Ï | ? | ï | ï |
| ° | ° | ° | D | Ð | Ð | e | ð | &ieth; |
| ± | ± | ± | ? | Ñ | Ñ | ? | ñ | ñ |
| 2 | ² | ² | ò | Ò | Ò | ò | ò | ò |
| 3 | ³ | ³ | ó | Ó | Ó | ó | ó | ó |
| ′ | ´ | ´ | ? | Ô | Ô | ? | ô | ô |
| μ | µ | µ | ? | Õ | Õ | ? | õ | õ |
| ? | ¶ | ¶ | ? | Ö | Ö | ? | ö | ö |
| · | · | · | × | × | × | ÷ | ÷ | ÷ |
| ? | ¸ | ¸ | ? | Ø | Ø | ? | ø | ø |
| 1 | ¹ | ¹ | ù | Ù | Ù | ù | ù | ù |
| o | º | º | ú | Ú | Ú | ú | ú | ú |
| ? | » | » | ? | Û | Û | ? | û | û |
| ? | ¼ | ¼ | ü | Ü | Ü | ü | ü | ü |
| ? | ½ | ½ | Y | Ý | Ý | y | ý | ý |
| ? | ¾ | ¾ | T | Þ | Þ | t | þ | þ |
| ? | ¿ | ¿ | ? | ß | ß | ? | ÿ | ÿ |
| à | À | À | à | à | à | ? |
四:注意事項(xiàng)
Android開發(fā)中,使用TextView設(shè)置換行時(shí),有如下幾種情況: 1.如果在strings.xml文件中設(shè)置string值為:"aaaa\nbbbb",TextView可以顯示為: aaaa bbbb 2.如果在代碼中直接設(shè)置setText("aaaa\nbbbb"),也可以顯示為: aaaa bbbb 3.如果將"aaaa\nbbbb"值傳入到一個(gè)數(shù)據(jù)封裝類如Person的字符串name屬性字段中,在代碼中設(shè)置setText(persion.getName())時(shí),則顯示為: aaaa\nbbbb 第三點(diǎn)就是問題所在,不能顯示換行! 問題分析:出現(xiàn)了“aaaa\nbbbb”這樣的顯示,說明TextView設(shè)置了“aaaa\\nbbbb”,這里多了一個(gè)“\”,對(duì)象所攜帶的字符串的轉(zhuǎn)移字符被消除了。
解決辦法:
在setText顯示的時(shí)候,將對(duì)象中得到的字符串中的“\\n”轉(zhuǎn)換成“\n”:
如:textview.setText(persion.getName().replace("\\n","\n"));
四:<xliff:g>標(biāo)簽
在處理國際化問題時(shí),有些String中的部分文字不需要翻譯,可以用<xliff:g>標(biāo)簽注明。這樣做可以保證自己或他人瀏覽時(shí)對(duì)不需要翻譯的內(nèi)容能夠一目了然,比如:<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="buy_kindle">我想買%s臺(tái)<xliff:g id="Kindle">Kindle</xliff:g></string>
總結(jié)
以上是生活随笔為你收集整理的Android strings.xml资源文件 使用技巧的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.App瘦身经验总结
- 下一篇: android 锁屏显示消息格式,通知!