setContentViewメソッド

android.appActivityクラス

setContentViewとは?

 状態:-  閲覧数:5,471  投稿日:2013-04-18  更新日:2013-07-20  
android.appパッケージにあるActivityクラス」のpublicメソッド


機能


・アクティビティにビューを追加する
・事前に配置するビューをXMLファイルで作成しておき、それを読み込んで利用することが可能


用途


・アクティビティにテキストやボタンといった部品を配置する


注意点


setContentViewメソッドには、引数の異なる3つのメソッドが用意されている

setContentViewメソッド「処理の流れ」比較

 閲覧数:1,231 投稿日:2013-04-18 更新日:2013-04-18 

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」となる
▼例1
public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);

 Button button = new Button(this); // Buttonクラスのインスタンスオブジェクト(button)を生成
 button.setText("ボタン1"); // ボタン(button)に表示される文字列を、setTextメソッドを使って設定  

 setContentView(button); // Activitiyクラスで定義されているsetContentViewメソッドを利用して、このビューをアクティビティへ追加(アクティビティの中に、Buttonクラスのオブジェクトを配置)
}


▼例2
public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);

 TextView display = new TextView(this); // TextViewクラスのインスタンスオブジェクト(display)を生成
display.setText("オブジェクト名displayは任意。つまり好きに命名してok"); // テキストビュー(display)に表示される文字列を、setTextメソッドを使って設定  

 setContentView(display); // Activitiyクラスで定義されているsetContentViewメソッドを利用して、このビューをアクティビティへ追加(アクティビティの中に、TextViewクラスのオブジェクトを配置)
}
▼例1
public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);

 setContentView(R.layout.test6_1); // 「test6_1.xml」というファイルを作成し、作成したプロジェクトの「res/layout」ディレクトリに配置
}


▼例2
public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);

 setContentView(R.layout.main); // 「res/layout」ディレクトリにあるmain.xmlを利用
}


setContentViewメソッド一覧

 閲覧数:1,269 投稿日:2013-04-18 更新日:2013-04-18 

メソッド詳細

修飾子 メソッド名 引数 主な利用用途 返値 備考
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クラスのオブジェクトを指定



Activityクラス

findViewByIdメソッド

コメント投稿(ログインが必要)