Android 格式化带有参数的字符串数组

Android 格式化带有参数的字符串数组,android,string-formatting,Android,String Formatting,我想格式化字符串数组,如下所示: 通常我们会: strings.xml <string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string> 我要找的东西是: 在某些任意xml中: <string-array name="employee"> <item>name: %1$s</item> &l

我想格式化字符串数组,如下所示:

通常我们会:

  • strings.xml

    <string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>
    
我要找的东西是:

  • 在某些任意xml中:

        <string-array name="employee">
            <item>name: %1$s</item>
            <item>post: %2$s</item>
        </string-array>
    
有没有一种优雅的方法可以做到这一点

编辑:

下一段代码是一个变通方法,我发布它只是为了帮助@Sufian,他在评论中要求这样做。一旦我的问题是关于格式化字符串数组的内容,并且下面的代码分别格式化每个字符串,这就不是一个真正的答案

在一些misc.xml中:

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

第一个职位:%1$d
第二个职位:%1$d
然后,在java代码中:

Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);
Resources res = getResources();
String[] employee = ArrayString.format(res.getStringArray(R.string.employee), name, post);
res = getResources();
String[] sa = res.getStringArray(R.array.string_array);
for (int i = 0; i < sa.length; i++ ) {
    text += String.format(sa[i], i);
}
res=getResources();
String[]sa=res.getStringArray(R.array.String\u数组);
对于(int i=0;i
getQuantityString可能会解决您的问题

查看中的数量字符串

以下是具体的API文档:

只需使用:

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

@Chuck_Norris quantity String实际上是在一组基于数量的多种可能性中选择一种格式,例如零、少、多。。。我需要使用整个数组字符串,每个数组位置可能是一个带参数的字符串。那么,您是如何解决它的?我有一个类似的问题。似乎没有优雅的方式来执行这种格式化。您需要迭代每个字符串数组元素,并根据需要对其进行格式化。有什么样的样品可以分享吗?现在,我只是使用下面的代码片段按名称选取字符串,并提供格式化参数,就像使用简单的资源字符串一样。我用变通方法编辑了答案。我希望它能帮助你。