- Home ›
 - Android入門 ›
 - TableLayoutクラス ›
 - HERE
 
TableRowクラスの定義とコンストラクタ
続いてTableRowクラスについて確認していきます。TableRowクラスはテーブルにおける行に相当するクラスであり、レイアウトに配置するビューはTableRowクラスのオブジェクトに格納していくことになります。
ではまずTableRowクラスの定義を確認します。クラス図は次のようになっています。
- java.lang.Object
 - android.view.View
 - android.view.ViewGroup
 - android.widget.LinearLayout
 - android.widget.TableRow
 
TableRowクラスはViewGroupクラスのサブクラスとなっています。TableRowクラスは特別なクラスで他のViewクラスのオブジェクトを子として含むことができます。
TableRowクラスのオブジェクトを本来の目的で利用するためにはTableLayoutクラスの子ビューとして利用して下さい。TableLayoutクラスのオブジェクト以外の子ビューとして利用した場合は、配置の方向が水平方向に設定されたLinearLayoutクラスと同じ扱いとなります。
TableRowクラスのコンストラクタ
TableRowクラスを利用するにはコンストラクタを使ってTableRowクラスのオブジェクトを作成します。どのようなコンストラクタが用意されているか確認してみます。
| コンストラクタ | 
|---|
| TableRow(Context context) | 
| TableRow(Context context, AttributeSet attrs, Map inflateParams) | 
コンストラクタは2つ用意されています。1番目のコンストラクタ以外は詳細は不明です。
1番目のコンストラクタの場合、引数には「Context」クラスのオブジェクトを指定します。ここでは自分自身を表す「this」を指定して下さい(画面を作成する「Activity」クラスは「Context」クラスのサブクラスとなっており、作成しているクラスは「Activity」クラスを継承して作成しています。すなわち作成しているクラスは「Context」クラスのサブクラスです)。
具体的には次のように記述します。
import android.app.Activity;
import android.os.Bundle;
import android.widget.TableLayout;
import android.widget.TableRow;
public class Test extends Activity {
    @Override public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        TableLayout tableLayout = new TableLayout(this);
        setContentView(tableLayout);
        TableRow tableRow = new TableRow(this);
    }
}
			( Written by Tatsuo Ikura )
				
JavaDrive