前回、Android Studioのプロジェクト新規作成で自動生成された下記のコードで@Overrideに関するメモを記載しましたが、この中で実際に実行する処理「setContentView」について、今回メモしておきます。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); /* 実行したい処理 */
}
setContentViewは、Activity上にView(画面を構成する要素)を表示するメソッドです。今回のコードでは、「R.layout.activity_main」を引数に設定しています。これは、activity_main.xmlというレイアウトファイルに画面レイアウトを設定して読み込ませるという記述です。
つまり
冒頭のコードは、onCreate()が呼び出されたら(アクティビティ開始されたら最初に)activity_main.xml(レイアウトファイル)を読み込んで画面に何を表示するか決めるということ。
今日のポイント
setContentView(R.layout.xxxxxx);
この記述で、xxxxx.xmlというレイアウトファイルを読み込みます。
おひれ
レイアウトファイルを読み込まずに、TextViewやButtonなどのViewGroupクラスを継承しているサブクラスを引数に設定して、Activity上にView(画面を構成する要素)を表示することもできますが、メモはまたの機会に。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
setContentView(linearLayout);
TextView textView = new TextView(this);
textView.setText("テキストビュー");
linearLayout.addView(textView);
Button button = new Button(this);
button.setText("ボタン");
linearLayout.addView(button);
}
コメント
コメントなどありましたら、GitHubのディスカッションへお願いします。(書き込みには、GitHubのアカウントが必要です)