2.4. 編集画面のクラス作成

サンプルアプリである「メモアプリ」の、編集画面を表示するためのクラスの作成について説明します。

前回、 編集画面のレイアウトを xml ファイルで作成しましたが、これを呼び出して表示するためのクラス(java ファイル)を作成します。
このクラスは、プロジェクト作成時に自動で作成されたメイン画面のクラス MainActivity と同じように作成していきます。

また、新規に画面クラス (Activity) を作成した場合、AndroidManifest.xml ファイルに画面クラスの定義を追加する必要がありますので、 これについても説明します。
(AndroidManifest.xml ファイルに追加しない場合、その画面を表示するときに例外が発生しますので気をつけてください。)

編集画面クラスファイルの作成

まず、編集画面のレイアウトを表示するためのクラスファイルを新規作成します。
パッケージ・エクスローラの [memoApp/src/com.example.memoapp/] フォルダを右クリックし、[新規 - クラス] を選択します。
新規 Java クラスの作成ダイアログが表示されます。
クラスファイル新規作成 名前に、EditActivity を入力し、スーパークラス項目の右にある「参照」ボタンを押下してクラスを選択します。
スーパークラスの選択 ダイアログが表示されます。
クラス参照ダイアログ 編集画面のレイアウトを表示するためのクラスなので、Android 画面クラスである Activity クラスをスーパークラスとします。
「型を選択してください」の部分に、activity と入力すると、 「一致する項目」に Activity - android.app が表示されますので、それを選択して「OK」ボタンを押下します。
元の画面の スーパークラス の項目に、android.app.Activity が入力されていることを確認し、「完了」ボタンを押下します。

ファイルが作成され、以下のように Activity クラスを継承したクラスが自動的に作成されます。

package com.example.memoapp;

import android.app.Activity;

public class EditActivity extends Activity {

}

これに、編集画面のレイアウトとメニューを表示する処理を追加していきます。

画面レイアウトとメニューのレイアウトを表示する処理については、プロジェクトを作成したときに自動で作成される MainActivity.java ファイルと 同じように、以下のように処理を追加します。

package com.example.memoapp;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;

public class EditActivity extends Activity {
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_edit);
  }

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.edit, menu);
    return true;
  }
}

Activity クラスが生成されるときに呼び出される onCreate メソッドで、表示する画面のレイアウトを設定します。 setContentView の 引数に R.layout.activity_edit を設定することで、作成した編集画面のレイアウト(activity_edit.xml ファイル)が このクラスに設定されます。

また、メニュー生成時に呼び出される onCreateOptionsMenu メソッドで、表示するメニューのレイアウトを設定します。 getMenuInflater().infate の引数に R.menu.edit を設定することで、作成した編集画面のメニューレイアウト(menu.xml ファイル)が このクラスに設定されます。

AndroidManifest.xml ファイルへの画面登録

Android アプリで新規に画面クラスを作成して使用する場合、AndroidManifest.xml ファイルに登録する必要があります。
この登録を行わないと、画面表示する際に例外が発生してしまいます。

登録するには、MemoApp プロジェクトにある AndroidManifest.xml ファイルを開きます。
開くと aplication タグの中に activity タグが既に1つ記述してあると思います。
Android Manifest ファイル これは、プロジェクト作成時に自動的に追加されたメイン画面 (MainActivity クラス) の登録です。

同様に編集画面クラスを登録するために、aplication タグの中に以下の記述を追加します。

<activity
    android:name="com.example.memoapp.EditActivity"
    android:label="@string/editactivity_title" >
</activity>

name に、パッケージ名も含めたクラス名を記述し、label に画面のタイトルを設定します。 このタイトルは、アクションバー左に表示される文字となり、ここでは、「編集」 という文字を設定します。

この label に設定した文字列の定義を追加する必要がありますので、
[MemoApp/res/values/] の strings.xml ファイルに以下の内容を追加します。

<string name="editactivity_title">編集</string>


これで、編集画面クラスが生成されたときに、作成した画面レイアウトとメニューが表示されるようになります。



次は・・・
メイン画面から編集画面への画面遷移について説明します。
2.5. 画面遷移の処理