android跳转到activity并接收返回结果

API level 23 (Android 6.0)之前

  • 在启动 Activity 的地方
// 在某个地方启动新的 Activity
Intent intent = new Intent(this, YourSecondActivity.class);
startActivityForResult(intent, requestCode);
  • 在新的Activity
// 在新的 Activity 中设置要返回的数据
Intent resultIntent = new Intent();
resultIntent.putExtra("key", "yourData");
setResult(Activity.RESULT_OK, resultIntent);
finish(); // 关闭当前 Activity
  • 在启动 Activity 的地方处理返回结果:
// 处理返回结果的回调方法
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == yourRequestCode) {
        if (resultCode == Activity.RESULT_OK) {
            // 获取返回的数据
            String resultData = data.getStringExtra("key");
            // 在这里处理返回的数据
        } else if (resultCode == Activity.RESULT_CANCELED) {
            // 处理用户取消的情况
        }
    }
}

API level 23 (Android 6.0)之后

  • 在启动 Activity 的地方
// 在 Activity 或 Fragment 中定义 ActivityResultLauncher
private val startAuthActivityForResult =
    registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
        if (result.resultCode == Activity.RESULT_OK) {
            // 处理成功的结果
            val data: Intent? = result.data
            // 处理返回的数据
        } else {
            // 处理取消或其他情况
        }
    }

// 启动 AuthActivity
startAuthActivityForResult.launch(Intent(this, AuthActivity::class.java))

  • 在新的Activity
// 在 AuthActivity 中设置要返回的数据
val resultIntent = Intent()
resultIntent.putExtra("key", "yourData")
setResult(Activity.RESULT_OK, resultIntent)
finish() // 关闭当前 Activity

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值