Activityクラスの基本を理解しよう! (2/8)
作成:2009-12-27 18:29
更新:2010-05-11 10:58
更新: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の中で扱えるのですから。
このR.layout.mainは、どこでどう用意されているのでしょうまた、これは何者なのでしょう。――その秘密をとくカギは、「R.java」というソースコードにあります。これが、「R」クラスのソースコードなのです。
見てみると、Rクラスの中に、いくつもの内部クラスが作成されていることがわかります。そして、それぞれの内部クラスの中には、static finalなint値フィールドが用意されています。これが、XMLデータとJavaのプログラムをつなぐ架け橋だったのです。
これらは、指定されたリソースのある場所を示す値が設定されています。これらを使うことで、XMLファイルやその中に用意したリソースなどが、Javaのソースコード内で利用できるようになるのです。
このR.javaは、プログラマが手を加えることはできません。これはプログラムをビルドする際に自動的に生成されます。したがって、ただ見るだけのことしかできないのですが、「リソースがどのような値としてRクラスに生成されているか」を理解することはとても重要です。これにより、リソースを自由にJavaの中で扱えるのですから。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
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; } }
※関連コンテンツ