AndroidのstartActivityForResultの使い方
AndroidでstartActivityForResult()メソッドは、新しいActivityを起動し、新しいActivityが終了すると、呼び出し元Activityに結果を返すことを可能にします。
まず、startActivityForResult()メソッドを実行する前に新規アクティビティを開始するためのIntentオブジェクトを準備する必要があります。Intentオブジェクトには起動するアクティビティのクラス名、またはアクションが含まれます。
そして、startActivityForResult()メソッドを呼び出して新しいアクティビティを起動し、Intentオブジェクトと、結果を返すために使用されるリクエストコード(requestCode)を渡す。
int requestCode = 1; // 请求码可以是任意的整数
Intent intent = new Intent(this, SecondActivity.class); // SecondActivity为要启动的Activity
startActivityForResult(intent, requestCode);
新しいActivity内で、処理が完了したらsetResult()メソッドを呼び出して結果データをセットし、Activityのfinish()メソッドを使って現在のActivityを終了します。
Intent resultIntent = new Intent();
resultIntent.putExtra("result", "这是返回的结果"); // 可以通过putExtra()方法来传递结果数据
setResult(Activity.RESULT_OK, resultIntent);
finish();
最後に、startActivityForResult()メソッドを呼び出したアクティビティでは、onActivityResult()メソッドをオーバーライドして戻り値のデータ処理を行う必要があります。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == Activity.RESULT_OK) { // 根据请求码和结果码来判断是哪个请求返回的结果
String result = data.getStringExtra("result"); // 获取结果数据
// 处理结果数据
}
}
startActivityForResult()メソッドを利用することで、新しいアクティビティを簡単に起動して、戻り値のデータを取得することができます。startActivityForResult()メソッドを呼び出すアクティビティでonActivityResult()メソッドをオーバーライドして、戻り値のデータを処理することを忘れないでください。