android strings.xml转义字符, 注意细节解决

来源:互联网 发布:java做场景设计的优点 编辑:程序博客网 时间:2024/05/17 07:48

转自:http://lanyan-lan.iteye.com/blog/1561500


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



如题: 
比如:在string.xml中定义如下一个字符串, 
<string name="first">大家好,欢迎来到eoeandroid社区。welcome to here!</string> 
我想以 
大家好,欢迎来到eoeandroid社区。 
welcome to here! 
两行的形式输出,如何做?加\n,看下面:
 
<string name="hello">大家好,欢迎来到eoeandroid社区。\nwelcome to here!</string> 



android中的空格编码 string.xml前后加空格的技巧 
<string name="space">&#160;&#160;&#160;&#160;我来看空格</string> 
&#160; 这个就代表着空格
 


1. 遇到如下错误的时候说明你需要在单引号签名加转义字符(\): 
Description Resource Path Location Type error: Apostrophe not preceded by \ (in Search' Titles) strings.xml 
只要将定义的字符串中的单引号('), 修改为(\')即可
 

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>