Android が文字列のフォーマットに使用するのと同じように、文字列の配列をフォーマットしたいと思います。
通常、次のことを行います。
文字列.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);
}