【问题标题】:Android strings xml similar textsAndroid 字符串 xml 类似文本
【发布时间】:2016-09-29 07:18:07
【问题描述】:

在我的 Android 应用程序中,我将 strings.xml 用于所有文本。我有很多情况使用几乎相同的字符串,

例如"Name" 和 "Name:" - 翻译相同,只是附加冒号不同。

除了像这样创建两个字符串项之外,还有其他方法可以拥有这两个字符串:

<string name="name">Name</string>
<string name="name2">Name:</string>

【问题讨论】:

  • 我认为两个不同的字符串不可能有相同的 id
  • 您可以尝试声明一个基本字符串,然后创建类似字符串格式化程序类或方法的东西。将基本字符串传递给方法,然后返回格式化字符串。
  • @AceSiena 谢谢,这不是一个糟糕的解决方案,但我也在使用对我的字符串的引用创建字符串数组,所以我不能在我的 Java 代码中使用它。你我会用在我能用的地方。

标签: android xml android-xml


【解决方案1】:

您无法在strings.xml 文件中连接字符串。

你所能做的就是指定格式,

<string name="name">Name</string>
<string name="string_with_colon">%s:</string>

然后以编程方式传递name

String.format(getString(R.string.string_with_colon), getString(R.string.name));

【讨论】:

  • 谢谢,这不是一个糟糕的解决方案,但我也在使用对我的字符串的引用创建字符串数组,所以我不能在我的 Java 代码中使用它。
【解决方案2】:

是的,您可以在不编写任何 Java/Kotlin 代码的情况下这样做,只需使用我在构建时创建的这个小型库来编写 XML:https://github.com/LikeTheSalad/android-string-reference

用法

根据您的示例,您必须像这样设置字符串:

<string name="name">Name</string>
<string name="template_name2">${name}:</string>

然后在构建您的项目后,您将获得:

<string name="name2">Name:</string>

【讨论】:

  • 看起来很有趣!我会在某个项目上尝试一下。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-10
  • 1970-01-01
  • 2013-09-16
相关资源
最近更新 更多