7

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);
}
4

2 に答える 2

0

getQuantityString で問題が解決する場合があります。

http://developer.android.com/guide/topics/resources/string-resource.htmlの数量文字列を見てください。

特定の API ドキュメントは次のとおりです: http://developer.android.com/reference/android/content/res/Resources.html#getQuantityString(int,%20int,%20java.lang.Object...)

于 2013-04-17T13:07:08.100 に答える