string.xml 特殊符号转义和变量使用

1. 特殊符号转义:

string.xml是xml文件  所以一些特殊符号在xml中需要转义这项需求也被继承下来  但是在android中又比较特殊   而且\在android.xml中代表转义字符

如在string.xml中一个空格或多个空格都只代表一个空格  如果要想多个空格  空格需用 代替 多少个 就有多少个空格

XML转义字符 
以下为XML标志符的数字和字符串转义符 
"      (" 或 ") 
'      (' 或 ') 
&    (& 或 &) 
<    (&#60; 或 &lt;) 
>    (&#62; 或 &gt;) 


测试以上xml转义字符   

在string.xml中

直接使用"或使用转义字符(&#34; 或 &quot;) 都不会出现"   想要出现"需要使用\"

使用'或使用转义字符(&#39; 或 &apos;)  string.xml会报错   想要不报错和出现'需使用\'

使用&和\&会报错   想要不报错和出现&需使用转义字符(&#38; 或 &amp;) 

使用<和\<会报错   想要不报错和出现<需使用转义字符(&#60; 或 &lt;) 

显示>可以直接使用>也可以使用转义字符(&#62; 或 &gt;)   \>显示空(既不显示任何字符)




2. 变量文本格式(%s)提示: 

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项目编译器), 这个版本的aapt编译起来会比老版本更加的严格, 在Android最新的开发文档中描述String的部分,已经说明了如何去设置 %s 等符号, 可以点击去看. 
简单解决方法就是:把%s之类的变量格式替换成%1$s, %1表示第一个位置的变量, $s表示为字符串类型 
例如: 

<string name="welcome_messages">Your First Var is %1$s! You Second Var is %2$d.</string>
 

你可能感兴趣的:(string.xml 特殊符号转义和变量使用)