スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

タグ :

   印刷ボタン       この記事に拍手する       このエントリーをはてなブックマークに追加

Return to page top

  • Comments (Close): -
  • TrackBack (Close): -

Rクラスとmain.xml

今回は、初心に帰って(?) デフォルトソースの

setContentView(R.layout.main);

の部分の意味を学びます。


前に学んだように、setContentView()メソッドは、文字列などのViewを画面(Activity)に追加します。基本のJavaにおける標準出力 System.out.println()メソッドのAndroid版と考えると分かりやすいと思います。

よって、

setContentView(R.layout.main);

は、R.layout.main を画面に出力することになります。

まず Rクラスですが、gen→sample.basicの下に R.java という自動生成ファイルがあります。

20110619_1


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 sample.basic;

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;
}
}


コメント部分には、自動生成されるので手動で修正しないようにとの注意書きがあります。

Rクラスは、リソースIDを管理するためのクラスです。プログラムはリソースIDを使ってリソースを利用します。

さて、この Rクラスの中に layoutクラスがあり、その中にmain変数があります。つまり、このmain変数がsetContentView()メソッドによって出力されます。

さらに、res→layout の下にあるmain.xmlにも注目です。

20110619_2


main.xmlを開くと、Graphical Layout のタブで入力部品をGUI的にいじることができます。

20110619_3


main.xmlタブはそのソースをいじることができます。

20110619_4


つまり、main.xmlはmain変数と対応しており、main.xmlでレイアウトを変更することで、その変更がmain変数を引数とするsetContentView()メソッドを通じて反映される仕組みになっています。

より一般的にいうと、Rクラスは、リソース・インデックスファイルと呼ばれます。画像やレイアウトなどアプリケーションで利用するリソースファイルを配置するresディレクトリ内のXMLファイルを変更すると、Rクラスが変更され、プログラムはRクラスに記述されたリソースを参照して利用することになります。

WebがHTMLで文書の骨組みを作り、CSSがレイアウトを担当し、JavaScriptでロジックを作る・・・といった役割分担をするように、AndroidではJavaのクラスファイルがロジックを担当し、XMLファイルがビューを担当するといった役割分担をすることで開発しやすくしています。

関連記事
スポンサーサイト

タグ :

   印刷ボタン       この記事に拍手する       このエントリーをはてなブックマークに追加

Return to page top

Comments:

Comment Form
Only inform the site author.

Trackback+Pingback:

TrackBack URL for this entry
http://androidhacker.blog94.fc2.com/tb.php/13-6ad4ed48
  • 閉じるボタン
レファレンス
月別アーカイブ
リンク
カテゴリ
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。