setContentViewとは?
状態:-
閲覧数:5,471
投稿日:2013-04-18
更新日:2013-07-20
「android.appパッケージにあるActivityクラス」のpublicメソッド
・アクティビティにビューを追加する
・事前に配置するビューをXMLファイルで作成しておき、それを読み込んで利用することが可能
・アクティビティにテキストやボタンといった部品を配置する
・setContentViewメソッドには、引数の異なる3つのメソッドが用意されている
機能
・アクティビティにビューを追加する
・事前に配置するビューをXMLファイルで作成しておき、それを読み込んで利用することが可能
用途
・アクティビティにテキストやボタンといった部品を配置する
注意点
・setContentViewメソッドには、引数の異なる3つのメソッドが用意されている
setContentViewメソッド「処理の流れ」比較
2種類
setContentView(引数)実装方法による分類
・全2種類(正確には全3種類) … 「渡す引数」の違いによる。より正確には【 アクティビティにビューを追加する「setContentView」メソッドには、引数の異なる3つのメソッドが用意されている 】ため
「処理の流れ」比較
- | setContentView (View view) もしくは setContentView (View view, ViewGroup.LayoutParams params) | setContentView (int layoutResID) |
---|---|---|
- | レイアウト動的定義(JAVA) | レイアウト静的定義(XML) |
特徴 | ・プログラムの中でビューを作成してアクティビティに追加するため、プログラムの実行時条件に応じてビュー追加が可能 ・初期画面のようなものをプログラムの中で全て記述するとビューの定義などでプログラムが長くなってしまう |
・プログラムの中でビューの設定や配置方法などを記述する必要がないため、プログラムをすっきりとさせることができる ・プログラムの実行前にXMLファイルを作成しておく必要があるため、プログラムの実行中にビューを追加することは出来ない |
処理の流れ | 1. 部品クラスのオブジェクトを生成 ↓ 2. そのオブジェクトに表示される文字列を、setTextメソッドを使って設定 ↓ ※ここまでの処理で、ビューが作成される ↓ 3. Activitiyクラスで定義されているsetContentViewメソッドを利用して、 このビューをアクティビティへ追加 |
1. レイアウト用XMLファイルを作成 ↓ 2. Activitiyクラスで定義されているsetContentViewメソッドを利用して、 このファイルをアクティビティへ設定 ※左記と同じsetContentViewメソッドを利用するが、「引数はViewクラスのオブジェクトからint型の値」となる点に注意が必要。このint型の値はレイアウトXMLファイルのリソースIDと呼ばれる ※リソースIDは、レイアウト用XMLファイル名が「○○.xml」だった場合には、「R.layout.○○」で参照可能。ちなみに、「main.xml」だった場合には「R.layout.main」となる |
例 | ▼例1public void onCreate(Bundle savedInstanceState) { ▼例2 public void onCreate(Bundle savedInstanceState) { |
▼例1public void onCreate(Bundle savedInstanceState) { ▼例2 public void onCreate(Bundle savedInstanceState) { |
setContentViewメソッド一覧
メソッド詳細
修飾子 | 型 | メソッド名 | 引数 | 主な利用用途 | 返値 | 備考 |
---|---|---|---|---|---|---|
public | void | setContentView | int layoutResID | 画面ビューを、「 レイアウトXMLファイルのリソースID」 で指定。具体的には、事前にXMLファイルを使ってビューの構造を定義しておき、そのXMLファイルをアクティビティに設定するためのメソッド。なお、 リソースIDはレイアウト用XMLファイル名が「ファイル名.xml」だった場合には「R.layout.ファイル名」で参照可能。また、「main.xml」だった場合には「R.layout.main」となる | なし | 画面レイアウトを定義したXMLファイルからViewオブジェクトを作成し、それをActivityクラスに登録(ビューを作成) |
public | void | setContentView | View view | ビューをアクティビティへ追加(作成した各ビューのオブジェクトを、アクティビティへ追加) 。 但し、配置方法は指定しない | なし | 引数 … 追加するViewクラスのオブジェクトを指定 |
public | void | setContentView | View view, ViewGroup.LayoutParams params | ビューを単に追加するだけでなく、追加した後にどのように配置するのかを合わせて指定 | なし | ・第1引数 … 追加するViewクラスのオブジェクトを指定 ・第2引数 … どのように配置するのかを表すLayoutParamsクラスのオブジェクトを指定 |