Android string.xml文件中整型和string型代替以及特殊轉義符
如果一段文字需要多個TextView拼貼,比如:“我叫XXX,今年XX歲了,身高X.X米”;
可以考慮引用string.xml文件中預定義的字符串拼接實現.
例子:
1.在string.xml中先定義好格式
<string name="hello">String.xml字符轉義拼接: 我叫 %1$s,今年 %2$d歲了,身高 %3$f米。</string>
2.代碼中這樣實現
TextView tv=(TextView)findViewById(R.id.textView);
String format = getResources().getString(R.string.hello);
String result= String.format(format , "Android" , 5 , 2.46 );//對應xml中定義的123順序
Log.e("", result);
tv.setText(result);
----------
輸出結果如下:
String.xml字符轉義拼接: 我叫 Android,今年 5歲了,身高 2.460000米.
--------------------------------------------------
特別注意:
在string.xml中無法直接寫成 %d,%s,%f 等這類格式化符號,必須在中間加個轉義符"$",而不是平時常用的轉義符"\"
---新增,網上找的---
如何在<string></string>中使用%號:
有兩個辦法可供選擇
1.用%%來表示1個%,和轉意符號 \ 的用法相同.(但我經我測試發現無效,編譯不報錯,但輸出結果是兩個%)
2.如果你的字符串不需要格式化,可以在你的<string 標籤上增加一個屬性:formatted="false"例如 <string name="test" formatted="false">% test %</string> 即可.
--------------------------------------------------------------------------------------
另外附送一些搜到的特殊轉義符:
XML轉義字符
以下爲XML標誌符的數字和字符串轉義符
" (" 或 ")
' (' 或 ')
& (& 或 &)
lt(<) (< 或 <)
gt(>) (> 或 >)
下面的字符在 [XML]中被定義爲 空白(whitespace)字符:
空格 ( )
Tab (	)
回車 (
)
換行 (
)