日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android strings.xml资源文件 使用技巧

發(fā)布時(shí)間:2023/12/10 Android 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android strings.xml资源文件 使用技巧 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


一:XML轉(zhuǎn)義字符

在strings.xml文件中定義字符串時(shí),特殊字符有時(shí)需要使用轉(zhuǎn)義字符代替,如:字符之間的空格用 Space 鍵是能顯示出效果的的,但是字符后面如果需要添加空格,直接 Space 鍵是不管用的,此時(shí) 空格應(yīng)該用?&#160;來表示(注意有分號(hào)),例如: <string name="top10_item_title">第%1$s名:&#160;&#160;&#160;%2$s號(hào)%3$s</string>

以下為XML標(biāo)志符的數(shù)字和字符串轉(zhuǎn)義符? "???? (&#34; 或 &quot;)?
'???? (&#39; 或 &apos;)?
&???? (&#38; 或 &amp;)?
lt(<) (&#60; 或 &lt;)?
gt(>) (&#62; 或 &gt;)? @ ? ?(&#64;) 版權(quán)符號(hào)? ? ??(&#169;)

下面的字符在 [XML]中被定義為 空白(whitespace)字符:?
空格 (&#x0020;)?
Tab (&#x0009;)?
回車 (&#x000D;)?
換行 (&#x000A;)?
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">得票:&#160;%1$s&#160;&#160;&#160;得票比例:&#160;%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)義字符
?&#161;&iexcl;á&#193;&Aacute;á&#225;&aacute;
&#162;&cent;?&#194;&circ;a&#226&acirc;
&#163;&pound;?&#195;&Atilde;?&#227;&atilde;
¤&#164;&curren;?&#196;&Auml?&#228;&auml;
&#165;&yen;?&#197;&ring;?&#229;&aring;
|&#166;&brvbar;?&#198;&AElig;?&#230;&aelig;
§&#167;&sect;?&#199;&Ccedil;?&#231;&ccedil;
¨&#168;&uml;è&#200;&Egrave;è&#232;&egrave;
?&#169;&copy;é&#201;&Eacute;é&#233;&eacute;
a&#170;&ordf;ê&#202;&Ecirc;ê&#234;&ecirc;
?&#171;&laquo;?&#203;&Euml;?&#235;&euml;
?&#172;&not;ì&#204;&Igrave;ì&#236;&igrave;
\x7f&#173;&shy;í&#205;&Iacute;í&#237;&iacute;
?&#174;&reg;?&#206;&Icirc;?&#238;&icirc;
ˉ&#175;&macr;?&#207;&Iuml;?&#239;&iuml;
°&#176;&deg;D&#208;&ETH;e&#240;&ieth;
±&#177;&plusmn;?&#209;&Ntilde;?&#241;&ntilde;
2&#178;&sup2;ò&#210;&Ograve;ò&#242;&ograve;
3&#179;&sup3;ó&#211;&Oacute;ó&#243;&oacute;
&#180;&acute;?&#212;&Ocirc;?&#244;&ocirc;
μ&#181;&micro;?&#213;&Otilde;?&#245;&otilde;
?&#182;&para;?&#214;&Ouml;?&#246;&ouml;
·&#183;&middot;&times;&#215;&times;÷&#247;&divide;
?&#184;&cedil;?&#216;&Oslash;?&#248;&oslash;
1&#185;&sup1;ù&#217;&Ugrave;ù&#249;&ugrave;
o&#186;&ordm;ú&#218;&Uacute;ú&#250;&uacute;
?&#187;&raquo;?&#219;&Ucirc;?&#251;&ucirc;
?&#188;&frac14;ü&#220;&Uuml;ü&#252;&uuml;
?&#189;&frac12;Y&#221;&Yacute;y&#253;&yacute;
?&#190;&frac34;T&#222;&THORN;t&#254;&thorn;
?&#191;&iquest;?&#223;&szlig;?&#255;&yuml;
à&#192;&Agrave;à&#224;&agrave;?



四:注意事項(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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。