
それでは、ようやく本題のJavaソースである「アクティビティファイル」の基本について解説してきます。
Androidは、Java言語で記述されていますが、Androidアプリを動作させるための特有の書き方がありますので、そちらを中心に解説していきます。
なお、ここでは、Javaの基本的な文法については解説しません。もし、不安という方は、まずJava言語そのものの文法について他の書籍なりで勉強されることをおすすめします。
下記は、Empty Activityを作った際に、まず最初に記述されているアクティビティファイルの内容になります。
package com.test.helloworld; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }
アプリのクラスについて
public class MainActivity extends AppCompatActivity { … }
アプリを作ると、上記のようなクラス宣言になっています。「MainActivity」は今回作成したアプリのクラスです。
AppCompatActivityクラス
デフォルトで、「AppCompatActivityクラス」を継承しています。Androidのメインクラスは、必ずこのクラスを継承して作成する必要があります。
ちなみに、このクラスは、Androidでサポートされているライブラリを利用するための基本的なクラスです。
onCreateメソッドについて
次に、気になるのが、下記の「onCreateメソッド」ですよね。これは、Androidアプリを起動するとまず初めに実行されるメソッドになります。 普通のスタンドアロンアプリで動かすJavaであれば、「public static void main(String args[])」に該当します。
@Override protected void onCreate(Bundle savedInstanceState) { }
なので、本メソッドには、画面やデータの作成に必要な初期処理を主に、記述していくことになります。
super.onCreate(savedInstanceState);
また、onCreateメソッドにデフォルトで上記が記載されています。
「super.onCreate(savedInstanceState);」というのは、superが、継承元の親クラスの「AppCompatActivity」になります。
親クラスにもonCreateメソッドがあるので実行する必要があるのです。
setContentView(R.layout.activity_main);
上記行に関しては、レイアウトファイル(xml)で宣言したファイルをこのアプリの画面として設定しています。
レイアウトファイル(xml)について分からない方は下記の記事をご参照下さい。
Rについて
「R.layout.activity_main」という記述ですが、「activity_main」はレイアウトファイルの名前になりますが、「R」とは何でしょうか。
Rは、結論から言えば、「Rクラス」というクラスがあるのです。
「R.layout.activity_main」自体が、Rクラスで定義されたレイアウトファイルへのパスを示す定数となっています。
なので、実際には、「R.layout.activity_main」は、「res/layout/activity_main.xml」というファイルパスが入っているのです。
この記事へのコメントはありません。