文字列リソースに複数の値を渡す
基本的な方法
複数の値を渡す際には%1$s
や%2$s
などを設定する。
1や2で何番目の引数を使うかを指定する
<string name="string_res1">1番目%1$s 2番目%2$s"</string>
getString(R.string.string_res1, "A", "B") 結果: 1番目A 2番目B
渡した値の一部を使わない場合
引数で複数の値を渡すが文字列リソースで使わない場合の挙動
<string name="string_res2">2番目のみ%2$s"</string>
getString(R.string.string_res2, "A", "B") 結果: 2番目のみB
特に問題なく文字列が取得できる
必要以上に値を渡した場合
1番目の引数のみ使う文字列リソースに2つの値を渡した場合
<string name="string_res3">1番目%1$s"</string>
getString(R.string.string_res3, "A", "B") 結果: 1番目A
実行時には問題なく文字列が取得できる
ただしlintでの警告がでる
values-ja/strings.xml
を作成して日本語の場合に2つの値を使うようにしても警告がでた