画面遷移(新しいActivityの表示)を行う|Android開発
次の画面を表示するサンプルになります。
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");
}