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()メソッドをオーバーライドして、戻り値のデータを処理することを忘れないでください。

コメントを残す 0

Your email address will not be published. Required fields are marked *


广告
広告は10秒後に閉じます。
bannerAds