facebook twitter hatena line email

「Android/画面遷移/メニューボタンから画面遷移」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(参考)
 
行74: 行74:
 
     }
 
     }
 
  }
 
  }
 
==参考==
 
http://www.techfirm.co.jp/lab/android/transition.html
 
  
 
==intentに直接引数を追加して遷移させる方法(このような方法でも遷移できる)==
 
==intentに直接引数を追加して遷移させる方法(このような方法でも遷移できる)==
 
  Intent intent = new Intent(MainActivity.this, SubActivity.class);
 
  Intent intent = new Intent(MainActivity.this, SubActivity.class);
 
  startActivity(intent);
 
  startActivity(intent);

2019年4月9日 (火) 18:18時点における最新版

以下ファイルを作成する

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