2013年4月28日日曜日

文字列の参照

Android の画面上には文字列を直接表示しないらしい。
サンプルアプリの res/layout/activity_main.xml の中に以下のコードがあります。
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />


実行してみると @string/hello_worldHello world! という文字列に置き換わっています。

@string/hello_world が Hello world! になっている


一方 res/values/strings.xml はこんなかんじ
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">String</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>

</resources>


例のごとく R.java の中に参照が自動で作られています
    public static final class string {
        public static final int action_settings=0x7f050001;
        public static final int app_name=0x7f050000;
        public static final int hello_world=0x7f050002;
    }

@string/hello_world は R.javastringhello_world に関連付けられたテキストを参照しています。

テキストは別の場所に定義しておいて、使うときにそれを参照するようです。
言語別に文字列を定義しておいて、実行時の環境に合わせて切り替えたりするらしいです。

確かRPGツクールアドバンスもこんな感じでメッセージは別で作る仕様だった気がします。

0 件のコメント:

コメントを投稿