androidのstring.xml转译、特殊字符问题处理
1. 编辑 string.xml 文件的时候,各种文字格式需要我们处理,先看下转义字符:
XML转义字符
以下为XML标志符的数字和字符串转义符
" (" 或 ")
' (' 或 ')
& (& 或 &)
lt(<) (< 或 <)
gt(>) (> 或 >)
2. 案例
1). 字符换行
<string name="first">大家好,欢迎来到。welcome to here!</string>
显示:
大家好,欢迎来到。
welcome to here!
解决方法:<string name="hello">大家好,欢迎来到eoeandroid社区。\nwelcome to here!</string>
2. 字符空格
  这个就代表着空格
字符之间的空格用 Space 键是能显示出效果的的,但是字符后面如果需要添加空格,直接 Space 键是不管用的,此时 空格应该用  来表示;
<string name="score">Score :  </string>
<string name="space">    我来看空格</string>3. 常用问题解析
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>