android - 使用带有 %、$ 和/和格式化的 strings.xml

标签 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>

我得到的错误是:

错误:以非位置格式指定的多个替换;您是要添加 formatted="false"属性吗? 错误:意外的结束标记字符串

我想问一下如何使这个工作(我稍后会使用string.format) 以及“formatted=false”做什么而不是不添加它/将其添加为 true。

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

还有两个问题:

  • 还有人能告诉我“formatted=false”有什么区别吗 制作?
  • 我是怎么得到这种行为的?(在没有错误的情况下报告错误,我试图通过炸毁东西并制造困惑来修复它)

这不是我唯一一次遇到错误,然后它神奇地自行修复了。有时我重新启动我的 adt,它会自行解决,但遗憾的是这次不是。

最佳答案

如果您添加了 formatted=false,那么您的字符串资源中的格式说明符(%$ 等)将被禁用,Formatter 将不会无法识别它们。 This一定能帮到你。

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

关于android - 使用带有 %、$ 和/和格式化的 strings.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24404314/

相关文章:

java - 错误: No resource found that matches the given name (at 'theme' with value '@style/Theme.Material.Light.DarkActionBar' )

android - 如何获取默认手机和 SIM 联系人的 ACCOUNT_TYPE 和 ACCOUNT_NAME?

java - xml 中的句点符号导致问题

C# 使用 ""设置字符串值而不打印它

android - 应用程序语言更改后的Firebase远程配置即时本地化

android - 当应用程序退出时,在单独的线程中重复任务的方法是什么?

php - simplexml 错误处理 php

java - 使用 googledrive api 制作 googledrive 帐户的数据文件

c - 将两个字符串读入 1 个变量

ios - 从 NSString 转换为 Swift String 时文本被截断