他のActivityを表示して処理結果を取得するにはstartActivityForResult()を使用する。処理結果を取得する必要がない場合にはstartActivity()を使用する。
// このコードで処理結果取得モードで他のActivityを開始する
Intent intent = new Intent(activityInstance.getApplicationContext(), TargetActivity.class);
activityInstance.startActivityForResult(intent, 1);
// 開始されたActivity側では処理結果を以下のコードで返す
Intent data = new Intent();
data.putExtra("test", "value");
activityInstance.setResult(RESULT_OK, data);
activityInstance.finish();
// 呼び出し元では下記メソッドをオーバーライドして結果を取得する
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
case 1:
// resultには"value"が入る
String result = data.getStringExtra("test");
break;
}
}
}