アクティビティを呼び出すにはstartActivity()メソッドを使いました。これは単純にアクティビティを呼び出すだけのものでした。
呼び出した先のアクティビティが終了した状況、例えば一通りの処理が完了して終了したのか、キャンセルして終了したのかを知りたい時は、startActivityForResult()メソッドを使います。
ActivityTest2aActivity.java
package jp.co.triware.samples.ActivityTest2a;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class ActivityTest2aActivity extends Activity {
private static final String TAG = "MainActivity";
private static final int REQUEST_SUB_ACTIVITY = 1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btnOpen = (Button)findViewById(R.id.open_btn);
btnOpen.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d(TAG, "OPEN button clicked!");
Intent intent = new Intent();
intent.setClass(getApplicationContext(), SubActivity.class);
startActivityForResult(intent, REQUEST_SUB_ACTIVITY);
Log.d(TAG, "after startActivityForResult()");
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_SUB_ACTIVITY) {
String buf = "Unknown";
switch (resultCode) {
case RESULT_OK:
buf = "OK";
break;
case RESULT_CANCELED:
buf = "Cancel";
break;
default:
break;
}
Log.d(TAG, "onActivityResult: " + buf);
Toast.makeText(getApplicationContext(), buf, Toast.LENGTH_LONG).show();
}
}
}