【问题标题】:Concatenate string and integer in string.xml在 string.xml 中连接字符串和整数
【发布时间】:2016-04-15 20:29:47
【问题描述】:

我正在尝试在 string.xml 中连接字符串和整数,如下所示...

<integer name="min_length">10</integer>
<string name="error">Enter minimum @integer/min_length chars</string>

因此 getString(R.string.error) 的值可以是“输入最少 10 个字符”。但是出现错误,请帮忙!

【问题讨论】:

  • 我认为不可能。
  • 这是不可能的。做一个运行时(here 一个例子)
  • 我通过运行时知道解决方案。但我需要我提到的方式。谢谢。
  • strings.xml 甚至可以包含&lt;integer&gt; 标签吗?

标签: android string integer concatenation


【解决方案1】:

您现在可以使用 DataBinding 执行此操作。

<TextView android:text='@{"Enter minimum " + @string/min_length)}' />

阅读更多关于数据绑定here

【讨论】:

    【解决方案2】:

    您不能在 xml 中连接字符串或整数和字符串。您可以在 xml 中分别引用一个字符串或整数标记中的另一个字符串或整数,但只能引用一个。 喜欢:

     <integer name="min_length">10</integer>
    
    <integer name="min">@integer/min_length</integer>
    

    你可以在 integer 中引用 integer,在 string 中引用 string。

    如果你尝试做你上面提到的android studio,你会被错误抛弃。

    【讨论】:

      【解决方案3】:

      来自 Shree 发布的链接

      XML

      <string name="error">Enter minimum %1$d chars</string>
      

      Java

      int min_length = 10;
      Resources res = getResources();
      String text = String.format(res.getString(R.string.error), min_length);
      

      【讨论】:

        【解决方案4】:

        快速解决您的问题!

        写下你的IntegerString 喜欢

        <integer name="min_length">10</integer>
        <string name="error">Enter minimum min_length chars</string>
        

        然后像这样连接它们

        String string = 
        getString(R.string.error).replace("min_length",
         String.valueOf(getResources().getInteger(R.integer.min_length)))
        

        在 Android 中,如果没有任何逻辑代码,就无法在 xml 中连接字符串

        See more at formatting and styling String resources

        【讨论】:

          猜你喜欢
          • 2012-07-18
          • 1970-01-01
          • 2012-12-28
          • 1970-01-01
          • 1970-01-01
          • 2011-02-20
          • 2017-06-21
          • 1970-01-01
          相关资源
          最近更新 更多