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);