Posted at

[Android] String Resourceに別のString Resourceを含める

More than 3 years have passed since last update.

String ResourceでFormatter(書式指定)を使えば、別のString Resourceを文字列内に含めることもできます。

このキャプチャの場合、「Cancelを選ぶと〜」の「Cancel」は「Cancel」ボタンのtextに指定しているString Resourceを使っています。

「Cancel」ボタンから「キャンセル」ボタンに変えたくなっても変更は一箇所ですみます。

スクリーンショット_2014-12-11_7_41_10.png


strings.xml

<string name="confirm_save">保存しますか?\n%sを選ぶと・・・</string>

<string name="cancel">Cancel</string>

%s の部分が指定した文字列に置換されます。

そこに別のString Resourceを指定ればOK。(あたりまえ)


HogeFragment.java

getResources().getString(R.string.confirm_save,

getResources().getString(R.string.cancel))

// これも同じ。
String.format(getResources().getString(R.string.confirm_save),
getResources().getString(R.string.cancel))


getResources().getString(resId) を短い名前のメソッドに切り出せばもっとすっきりしますね。

XMLだけではできないっぽい??

書式指定はこの辺りを参考に。

http://developer.android.com/reference/java/util/Formatter.html