facebook twitter hatena line email

Android/画面遷移/メニューボタンから画面遷移

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

以下ファイルを作成する

SubActivity.java
sub.xml

AndroidManifest.xmlに以下を追加

<activity android:name="SubActivity"></activity>

MainActivity.javaを編集

package com.example.androidHelloworld;
import android.app.Activity;
import android.os.Bundle;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends Activity {
    /** メニューID  */
    private final int MENU_ID1 = Menu.FIRST;
    private final int MENU_ID2 = Menu.FIRST + 1;
    
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
    /**
     * メニューを作成する
     */
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);
        menu.add(0,
                MENU_ID1,
                0,
                getString(R.string.menu_next)).setIcon(android.R.drawable.ic_menu_crop);
        menu.add(0,
                MENU_ID2,
                1,
                getString(R.string.menu_finish)).setIcon(android.R.drawable.ic_menu_close_clear_cancel);
        return true;
    }
   /**
     * メニューボタン押下時の処理
     */
    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        super.onPrepareOptionsMenu(menu);
        return true;
    }
    /**
     * メニューを選択時の処理
     */
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case MENU_ID1:
            // 次の画面に遷移させる
            Intent intent = new Intent();
            // intent.setClassName(
            //         "com.example.androidHelloworld.MainActivity",
            //         "com.example.androidHelloworld.SubActivity");
            intent.setClassName(getPackageName(), getPackageName() + ".SubActivity");
            startActivity(intent);
            return true;
        case MENU_ID2:
            // Activity終了
            finish();
            return true;
        default:
            break;
        }
        return super.onOptionsItemSelected(item);
    }
}

intentに直接引数を追加して遷移させる方法(このような方法でも遷移できる)

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