使用带有%,$和/和格式的strings.xml

时间:2014-06-25 08:58:12

标签: android xml string

我将此行添加到我的strings.xml中,它不会编译成R.
<string name="cl_txt_verinfo">List Version: %1$s\nAuthor: %2$s\nDate Created: %3$s\nLanguage: %4$s</string>

我得到的错误是:

错误:以非位置格式指定的多个替换;你的意思是添加格式化的=&#34; false&#34;属性? 错误:意外的结束标记字符串

我想问一下如何使这项工作(我稍后会使用string.format) 什么&#34;格式化=假&#34;而不是添加它/将其添加为true。

编辑: 清理和构建是我得到这个错误的方式。我得到了这么多次。 但后来我删除了一个空行并清理并重建一切都很好。 这实际上是不一致的,我不知道造成问题的原因是什么。

还剩下两个问题:

  • 有人还能告诉我有什么区别会&#34; formatted = false&#34; 使?
  • 我是如何得到这种行为的?(当没有任何情况时报告错误,我试图通过吹嘘并造成混乱来修复它)

这不是我唯一一次出错,然后它神奇地修复了自己。有时我重新开始我的adt并且它自己解决了,但不是这次可悲的。

1 个答案:

答案 0 :(得分:9)

如果添加了formatted=false,则会禁用字符串资源中的格式说明符(%$等),并且Formatter将无法识别它们。 This肯定会帮助你。

对于你的第二个问题,没有确切的解决方案,但我做的是删除gen和bin文件夹,然后清理构建项目。每次构建项目时都会发生什么,android会检查是否有可用的新资源并将其添加到R.java中,然后才能使用它。