初学者です。個人的な勉強のために書きました。
アプリ起動時に実行されるメソッド
package com.websarva.wings.android.hellosample;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class HelloSampleActivity extends AppCompatActivity {
@override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);//--------------1
setcontentView(R.layout.activity_hello_sample);//--2
}
}
・上記のコードは、あらかじめ記述されているもの
・onCreateメソッドは、Androidアプリが実行されると、まず最初に実行されるメソッドであるため、画面作成やデータの用意など、初期処理として必要なものはこのメソッドに書く必要がある
・①は、親クラスのonCreateメソッドを呼び出し、処理を記述している。Activityクラスは、Activityクラス(またはその子クラス)を継承して作る必要があるため、Activityクラスで定義されているonCreateメソッドをオーバーライドする形で記述する
・②は、このアプリで表示する画面を設定している。上記のコードは、activity_hello_sample.xmlに記述したものを画面として使うので、引数を「R.layout.activity_hello_sample」としている
Rクラス
・Android開発では、resフォルダ内のファイルや、そのファイル中に記述されたリソースは、Androidアプリの管理対象として扱う
・効率よくリソースを管理するために、Androidではそのファイル値を識別するためのint型定数を使用する
・int型定数をまとめたクラスがRクラスで、そこにAndroid studioが自動追記する仕組みになっている。これにより、Rクラス中の定数(R値)を使ってリソースをやり取りできる
※R.javaはapp/buikdgenerated/source/r/debug配下のパッケージ内に作成される
例えば、「R.layout.activity_hello_sample」という記述は、「res/layout/activity_hello_sample.xml」ファイルを示す定数
・Javaでは、定数は大文字で記述することになっているが、R値に関しては、実際のフォルダ階層や、ファイル名などとの関係をはっきりさせるために、記述されたフォルダ名やファイル名をそのまま使っている