2.5. 画面遷移の処理

サンプルアプリである「メモアプリ」の、メイン画面から編集画面を表示するための画面遷移について説明します。
メイン画面のアクションバーにある [追加] の項目を選択すると、編集画面を表示する。という処理になります。
メイン画面から編集画面への遷移
ここで追加する処理は、以下の2つとなります。
・ アクションバーのメニュー選択のイベント処理
・ メイン画面から編集画面への画面遷移処理

それぞれについて説明していきます。

アクションバーのメニュー選択のイベント処理

Android アプリでメニュー選択のイベントを受け取るためには、Activity クラスの onMenuItemSelected メソッドをオーバーライドします。
このイベントを受け取る部分の以下の処理を、MainActivity クラス(MainActivity.javaファイル)のメソッドに追加します。

// メニュー選択処理
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
    switch(item.getItemId()) {
    case R.id.action_add:
        // [追加] 選択時の処理
        break;
    default:
        break;
    }
    
    return super.onMenuItemSelected(featureId, item);
}

onMenuItemSelected メソッドの引数である item の getItemId で選択されたメニューの ID を取得し、ケース分けをして処理を行います。
ID は、メイン画面用のメニューレイアウトファイル [menu/main.xml] ファイルの各 item に設定した id となります。
この case R.id.action_add のケースが、[追加] を選択したとき処理になります。ここに、編集画面への画面遷移処理を追加します。

メイン画面から編集画面への画面遷移処理

Android アプリで画面遷移を行うためには、Intent というものを使用します。
Intent を使用して画面遷移処理を行う処理は以下のようになります。
(メニュー選択イベントの case R.id.action_add の部分に以下の処理を記述します。)

Intent intent = new Intent(MainActivity.this, EditActivity.class);
startActivity(intent);

Intent を生成するときの第一引数に自分自身(MainActivity)を指定し、第二引数に遷移先のクラスを指定します。
メイン画面から編集画面へ遷移したいので、上記のような設定となります。
そして、startActivity メソッドの引数に生成した intent を渡すことで画面遷移を行います。

これで、アクションバーのメニュー項目 [追加] を選択したときに、編集画面を表示する処理は完成です。
ここまでの MainActivity.java の内容は、以下のようになりますので確認してみてください。

package com.example.memoapp;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

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

    // メニュー選択処理
    @Override
    public boolean onMenuItemSelected(int featureId, MenuItem item) {
        switch(item.getItemId()) {
        case R.id.action_add:
            // 編集画面への遷移処理
            Intent intent = new Intent(MainActivity.this, EditActivity.class);
            startActivity(intent);
            break;
        default:
            break;
        }
    
        return super.onMenuItemSelected(featureId, item);
    }
}



ここまで作成した状態でメモアプリを実行すると、
まずメイン画面が表示され、アクションバーのメニュー [追加] を選択すると、編集画面が表示されます。
また、編集画面で端末の戻るボタンを押下すると、メイン画面に戻ります。
画面遷移イメージ
これで、画面の表示に関する処理はほぼ完成です。
次回からは、入力された内容のファイル保存機能や、作成されたメモをリストに表示する機能等を追加していきます。



次は・・・
編集画面で入力された内容をファイル保存する処理について説明します。
2.6. 編集内容のファイル保存