libro
www.tuyano.com
Google androidプログラミング入門

Activityクラスの基本を理解しよう! (2/8)

作成:2009-12-27 18:29
更新:2010-05-11 10:58

■Rクラスの秘密とは?

それにしても、どことなく釈然としない人も多いことでしょう。setContentViewでは、「R.layout.main」というものを引数に渡しています。「これが、メインレイアウトを示すものなんだ」といわれても、「それはどこで設定しているんだ? 私たち一般庶民には教えてもらえないのか?」と思ってしまうでしょう。

このR.layout.mainは、どこでどう用意されているのでしょうまた、これは何者なのでしょう。――その秘密をとくカギは、「R.java」というソースコードにあります。これが、「R」クラスのソースコードなのです。

見てみると、Rクラスの中に、いくつもの内部クラスが作成されていることがわかります。そして、それぞれの内部クラスの中には、static finalなint値フィールドが用意されています。これが、XMLデータとJavaのプログラムをつなぐ架け橋だったのです。

これらは、指定されたリソースのある場所を示す値が設定されています。これらを使うことで、XMLファイルやその中に用意したリソースなどが、Javaのソースコード内で利用できるようになるのです。

このR.javaは、プログラマが手を加えることはできません。これはプログラムをビルドする際に自動的に生成されます。したがって、ただ見るだけのことしかできないのですが、「リソースがどのような値としてRクラスに生成されているか」を理解することはとても重要です。これにより、リソースを自由にJavaの中で扱えるのですから。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

package jp.tuyano;

public final class R {
    public static final class attr {
    }

    public static final class drawable {
        public static final int icon=0x7f020000;
    }

    public static final class layout {
        public static final int main=0x7f030000;
    }

    public static final class string {
        public static final int app_name=0x7f040001;
        public static final int hello=0x7f040000;
    }
}
※関連コンテンツ

「Google androidプログラミング入門」に戻る