使用参数格式化字符串数组

时间:2013-04-17 12:38:07

标签: android string-formatting

我想格式化一个字符串数组,就像android used to format strings

一样

通常我们这样做:

  • 的strings.xml

    <string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>
    
  • 在一些java代码中:

    Resources res = getResources();
    String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);
    

我正在寻找类似的东西:

  • 在一些任意的xml:

        <string-array name="employee">
            <item>name: %1$s</item>
            <item>post: %2$s</item>
        </string-array>
    
  • 在一些java代码中:

    Resources res = getResources();
    String[] employee = ArrayString.format(res.getStringArray(R.string.employee), name, post);
    

有一种优雅的方式吗?

编辑:

下一段代码是一种解决方法,我发布它只是为了帮助@Sufian,后者在评论中提出要求。一旦我的问题是格式化字符串数组的内容并且波纹管代码分别格式化每个字符串,这不是一个真正的答案。

在一些misc.xml中:

<string-array
    name="string_array">
    <item>1st position: %1$d</item>
    <item>2nd position: %1$d</item>
</string-array>

然后,在java代码中:

res = getResources();
String[] sa = res.getStringArray(R.array.string_array);
for (int i = 0; i < sa.length; i++ ) {
    text += String.format(sa[i], i);
}

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

只需使用:

String text = String.format(res.getStringArray(R.array.myStringArray)[index], param1, param2);