【问题标题】:Is it possible to reference another string in strings.xml? [duplicate]是否可以在 strings.xml 中引用另一个字符串? [复制]
【发布时间】:2010-05-03 10:55:34
【问题描述】:

是否可以在包含其他文本的另一个字符串中引用 strings.xml 中的一个字符串?

XML 中允许的,并且会达到这种效果的东西:

<string name="string_one">My string</string>
<string name="string_two">Here it is: android:id="@string/string_one"</string>

【问题讨论】:

    标签: android reference string


    【解决方案1】:

    您可以为要在其他字符串中使用的字符串创建自己的 XML 实体,并像这样使用它们:

    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE resources [
        <!ENTITY app_name "My App">
    ]>
    <resources>
        <string name="app_name">&app_name;</string>
        <string name="welcome_message">Welcome to &app_name;</string>
    </resources>
    

    【讨论】:

      【解决方案2】:

      我认为这是不可能的。 我通常做的事情如下:

      <string name="string_one">My string</string>
      <string name="string_two">Here it is: %s" </string>
      

      在java代码中:

      String.format(getString(R.string.string_two), getString(R.string.string_one));
      

      我为参数化消息做这种事情,例如:“你有 %d 封新邮件”。

      【讨论】:

      • 是的,但是例如对于布局 XML 文件中使用的字符串,这不起作用。
      • 不可能静态地做到这一点? F.e.如果您想拥有两个名称不同但始终相同的字符串,则可以将第二个字符串链接到第一个字符串,因此您只需更改一个。这可以通过它们之间的静态链接来实现。所以这是不可能的?
      • @StevenRoose 只要它们完全相同,这是可能的。更多细节在这里:stackoverflow.com/a/6378421/357055
      猜你喜欢
      • 2011-06-12
      • 2011-09-20
      • 2012-02-09
      • 2019-07-02
      • 1970-01-01
      • 2022-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多