要从另一个活动中获取结果,必须使用startActivityForResult而不是startActivity。使用此方法启动活动后,您需要覆盖调用活动的onActivityResult方法来处理结果。
下面是一个代码示例,演示如何从另一个活动中获取结果:
//在第一个活动中启动另一个活动 val intent = Intent(this, SecondActivity::class.java) startActivityForResult(intent, REQUEST_CODE)
//在另一个活动中返回结果 val resultIntent = Intent() resultIntent.putExtra("result", "some result") setResult(Activity.RESULT_OK, resultIntent) finish()
//在第一个活动中处理结果 override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK) { val result = data?.getStringExtra("result") //处理结果 } }
需要注意的是,REQUEST_CODE是一个任意整数值,用于标识在哪个请求中返回结果。在处理结果时,您还需要检查结果代码是否为Activity.RESULT_OK,以确保操作成功完成并返回结果。