Android 资源String 格式化特殊处理,%s%s多占位符报错

格式和样式

关于如何正确设置字符串资源的格式和样式,您应了解以下几个要点。

处理特殊字符

如果 XML 或 Android 中的字符串包含有特殊用法的字符,则必须转义这些字符。您可以使用前导反斜杠转义某些字符,但其他字符需使用 XML 转义。您也可以通过在双引号中包括整个字符串,处理撇号和单引号。以下为部分示例:

字符转义形式
@\@
?\?
<&lt;
&&amp;
单引号 (')

以下任意字符:

  • &apos;
  • \'
  • 在双引号中包括整个字符串(例如,"This'll work")
双引号 (")

以下任意字符:

  • &quot;
  • \"

请注意,您必须转义双引号。在单引号中包括字符串没有任何作用。

设置字符串格式

如需设置字符串的格式,您可以在字符串资源中放入格式参数(如以下示例资源所示)。

<string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>
String text = getString(R.string.welcome_messages, username, mailCount);

注意:在多参数的情况下:以前低版本可以定义成<string name="test">你好%s,%shello</string>。这种定义是没有问题的,如果在一些高版本的sdk下,gradle会报错,如果报错,改成<string name="test">你好%1$s,%2$s 哈哈</string>,即占位需要告诉相应的索引。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值