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