strings.xml に実行時の値のプレースホルダーを入れることは可能ですか? 質問する

strings.xml に実行時の値のプレースホルダーを入れることは可能ですか? 質問する

string.xml実行時に値を割り当てることができるプレースホルダーを文字列値に含めることは可能ですか?

例:

文字列PLACEHOLDER1文字列

ベストアンサー1

書式設定とスタイル

はい、以下をご覧ください文字列リソース: 書式設定とスタイル設定

を使用して文字列をフォーマットする必要がある場合はString.format(String, Object...)、文字列リソースにフォーマット引数を配置することでフォーマットできます。たとえば、次のリソースを使用します。

<string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>

この例では、書式文字列には 2 つの引数があります。%1$s文字列と%2$d10 進数です。次のように、アプリケーションからの引数を使用して文字列を書式設定できます。

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

基本的な使い方

getString文字列をフォーマット文字列として使用するオーバーロードがあることに注意してください。

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

複数形

複数形を処理する必要がある場合は、次のようにします。

<plurals name="welcome_messages">
    <item quantity="one">Hello, %1$s! You have a new message.</item>
    <item quantity="other">Hello, %1$s! You have %2$d new messages.</item>
</plurals>

最初のmailCountパラメータは、使用する形式 (単一または複数) を決定するために使用され、他のパラメータは置換されます。

Resources res = getResources();
String text = res.getQuantityString(R.plurals.welcome_messages, mailCount, username, mailCount);

見る文字列リソース: 複数形詳細については。

おすすめ記事