文字列リソースへリソースIDの割り当て

広告

文字列のリソースの場合もレイアウトの場合と同じくリソースに対するIDが割り振られます。リソースの登録を行いましたら一度ビルドを行って下さい。その後で作成された「R.java」の中身を確認してみます。

/* AUTO-GENERATED FILE.  DO NOT MODIFY.
 *
 * This class was automatically generated by the
 * aapt tool from the resource data it found.  It
 * should not be modified by hand.
 */

package jp.javadrive.android;

public final class R {
    public static final class attr {
    }
    public static final class layout {
        public static final int main=0x7f020000;
    }
    public static final class string {
        public static final int app_name=0x7f030002;
        public static final int bye_msg=0x7f030001;
        public static final int hello_msg=0x7f030000;
    }
}

上記のように「R」クラスの中の「string」クラスの中にstatic変数として定義が行われています。(もう一つある「app_name」と言うのはデフォルトで作成された「strings.xml」ファイルの中で記述されています)。

詳細は別のページで確認しますが、プログラムなどから参照する場合は「R.string.hello_msg」のように参照でき、レイアウト用のXMLファイルなどから参照する場合は「@string/hello_msg」のように参照できます。

レイアウト用のXMLファイルの場合はファイル名が「layout」クラス内の変数名として使われていましたが、文字列のリソースの場合には登録されているファイル名は関係なく、リソースとして登録したリソース名が「string」クラス内の変数名として使われている点に注意して下さい。

では次のページで実際にプログラムから参照を行ってみます。

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)