我想格式化一个字符串数组,就像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);
}
答案 0 :(得分:0)
getQuantityString可以解决您的问题。
查看http://developer.android.com/guide/topics/resources/string-resource.html
中的数量字符串答案 1 :(得分:0)
只需使用:
String text = String.format(res.getStringArray(R.array.myStringArray)[index], param1, param2);