2011年11月28日月曜日

String.xmlの内容をString型でjavaで扱う【android】【String.xml】【多言語化】

すでにあるvaluesフォルダと同じ階層にvalues-jaを作成し、同じXMLファイルを置いてやることで、
日本語専用のXMLファイルを用意することができ、本体の言語設定に応じて、どちらのXMLファイル
を使用するか選択させることができます。

このような仕組みをandroidでは「多言語化」と呼んでいますが、このような多言語化を行った際に
String.xmlの内容をString型で取得したい。とすぐになります。

一般的なString.xmlファイルからの値の取得方法は、下記のようになりますが、これでは、R.java
に記載されている「id」しか取得できません。

R.string.select_dir
※select_dirはString.xmlに定義されているものとします。

この解決方法として、android.content.Context.getStringメソッドを使用する方法があります。

String str = getString(R.string.select_dir);

としてやることで、String型でString.xmlファイルから値の取得ができます。


この方法は、Activity内では上記のように使用することができますが、共通部品のような、他の
クラスではContextが見つけられない事から、getStringメソッドが見つけられないため、使用
することができません。その場合のひとつの解決方法として、共通部品の引数にContextを増やし、
引数で、thisを渡してあげることで、解決することができます。

0 件のコメント:

コメントを投稿