tande lab.

[Android] string.xml でテキスト情報を管理する

アプリに埋め込むテキスト情報は “string.xml” で管理しておくと良いです。
そうすると colors.xmldimension.xml と同様、テキスト情報を変数のように扱えます。

ここで登録するテキスト情報は、アプリ内で動的に生成されるものではなく、固定テキストです。

やり方は以下な感じ。

res > values

の中に "string.xml" を新規作成します。
https://lh4.googleusercontent.com/-qG26Fzo0U1Q/UTw9g6uEdNI/AAAAAAABRgE/6N_MsU6YV7U/s800/130106-0002.png

その作成した XML ファイル内に、下記のように、名前とテキストを対応付けて登録します。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">ComicWatcher</string>
    <string name="menu_settings">Settings</string>
    <string name="menu_refresh">Refresh</string>
    <string name="menu_add">Add</string>
    <string name="menu_remove">リストから削除</string>
    <string name="menu_follow">このシリーズをフォロー</string>
    <string name="menu_unfollow">このシリーズを削除</string>
    <string name="txt_release_date">%s</string>
    <string name="txt_series_num">%d巻</string>
    <string name="txt_non_reserved">未予約</string>
    <string name="txt_reserved">予約済</string>
    <string name="txt_reserve">%s巻を予約する</string>
</resources>

テキスト情報を一元管理できるようになるので、
同じ意味だけど表現が違うというようなテキスト揺れも無くせますし、
テキストの修正が楽になりますね。

こちらのサイトが詳しいです。
Y.A.M の 雑記帳: Android 複雑な文字列を xml で定義する

eclipse のプロパティパネルで指定する場合

"string.xml" を作成すると名前が候補に出てくるようになるので、簡単に指定できます。
https://lh5.googleusercontent.com/-qgNwYfn_gkA/UTxNQmnS26I/AAAAAAABRgc/3L62Z9WdDKs/s800/130310-0003.png

多言語展開で威力を発揮

こうやって string.xml でテキスト情報を管理しておくと、
多言語展開するときにも威力を発揮するようです。

多言語化については下記サイトが分かりやすいです。
Android string.xmlの分割と多言語化 – conta’s diary