如何从第二个活动中获取第一个活动中的信息



我了解如何使用 intent.putExtra 将数据从当前活动传递到第二个活动。

这些帖子很好地解释了它: 活动到活动回调侦听器

如何在 Android 应用程序中的活动之间传递数据?

但是,我感兴趣的是第二个活动会将数据发送回打开它的第一个活动。

比如说,MeetActivity 是我的主要活动,然后我激活了 EditProfileActivity,这是次要活动:

override fun startEditProfile() {
startActivity(EditProfileActivity.newIntent(this))
overridePendingTransition(R.anim.slide_in_up, R.anim.slide_out_down)
}

在 EditProfileActivity 中,我创建了一个配套对象:

companion object {
fun newIntent (context: Context?) = Intent(context, EditProfileActivity::class.java)
}

我仍然不明白作为主要活动的MeetActivity如何从EditProfileActivity(第二个活动(接收回信息 提前致谢

你应该使用 startActivityForResult((

来自文档

启动另一个活动不一定是单向的。你也可以 启动另一个活动并接收返回的结果。要接收结果, 调用 startActivityForResult(( (而不是 startActivity(((。

您可以按如下方式启动结果活动

const val PICK_CONTACT_REQUEST = 1 // The request code.
// ...
private fun pickContact() {
val pickContactIntent = Intent(Intent.ACTION_PICK).apply {
// Show user only the contacts that include phone numbers.
setDataAndType(
Uri.parse("content://contacts"),
Phone.CONTENT_TYPE
)
}
startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST)
}

并接收结果覆盖以下方法

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
// Check which request we're responding to
if (requestCode == PICK_CONTACT_REQUEST) {
// Make sure the request was successful
if (resultCode == Activity.RESULT_OK) {
// The user picked a contact.
// The Intent's data Uri identifies which contact was selected.
// Do something with the contact here (bigger example below)
}
}
}

相关内容

最新更新