画面遷移(新しいActivityの表示)を行う|Android開発

      2018/08/30

次の画面を表示するサンプルになります。
Intentクラスを使って新しいアクティビティを起動させます。

新しいアクティビティを開始する

setAction()は無くても表示できました。

Intent intent = new Intent(this, NextActivity.class);
startActivity(intent);
Intent intent = new Intent(this, NextActivity.class)
        .setAction(Intent.ACTION_VIEW);
startActivity(intent);

アクティビティ終了時に結果を受け取る

startActivityForResult()を使用します。

アクティビティ開始時

private static final int REQUEST_CODE = 1;

Intent intent = new Intent(this, NextActivity.class);
startActivityForResult(intent, REQUEST_CODE);

結果を送る

NextActivityクラスで以下の様に送信処理を行います。

Intent intent = new Intent();
intent.putExtra("NUMBER", 1);
setResult(RESULT_OK, intent);
finish();

結果を受け取る

受け取る側はkeyとデータ型を知っておく必要があります。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_CODE) {
        if (resultCode != RESULT_OK) {
            return;
        }
        Bundle bundle = data.getExtras();
        int number = bundle == null ? -1 : bundle.getInt("NUMBER");
    }
}

アクティビティ開始時にデータを渡す

アクティビティ開始時

String[] values = new String[2];
values[0] = "SPECIAL";
values[1] = "STANDARD";
Intent intent = new Intent(this, NextActivity.class)
        .putExtra("EDITION", values);
startActivityForResult(intent, REQUEST_CODE);

データ受け取る

受け取る側はkeyとデータ型を知っておく必要があります。

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

    Intent intent = getIntent();
    Bundle bundle = intent.getExtras();
    String[] values = bundle == null ? new String[0] : bundle.getStringArray("EDITION");
}

 - Android