java - 将数据从片段发送到另一个活动时不调用 OnActivityResult
问题描述
我将数据从片段发送到另一个活动。但是 Activity 中的 onActivityResult 没有被调用。在我的片段中,我使用 activity.setResult()
我尝试在我的片段中使用 startActivityResult() 但仍然无法正常工作
这是我的片段:
private fun menuItemClicked(menu : DaftarMenu.Menu){
val intentMenu = Intent()
intentMenu.putExtra(PartDetailActivity.INTENT, menu)
activity?.setResult(PartDetailActivity.MENU, intentMenu)
activity?.finish()
}
这是我的活动:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
Log.i("requestCode MENU", " reqMenu = $requestCode")
if(requestCode == MENU){
val menu = data?.getParcelableExtra<DaftarMenu.Menu>(INTENT) ?: return
Log.i("menuIntent"," menu : ${menu.id}")
val editMenu = EditJumlahPesanan(menu, 1, "")
editList.add(0, editMenu)
rec_edit_quantity.adapter.notifyDataSetChanged()
}
}
甚至第一个 Log 也没有被调用。
请帮我从我的片段中获取数据
解决方案
在您的代码中,activity?.setResult(PartDetailActivity.MENU, intentMenu)
应更改为activity?.setResult(Activity.RESULT_OK, intentMenu)
.
如果在此更改之后它仍然无法正常工作,请务必使用 startActivityForResult 启动您的活动。
推荐阅读
- javascript - 在使用 CORS 的情况下,Edge 浏览器不会重定向呼叫
- python - 在pygame中实现曲线上的碰撞检测
- javascript - 从 api 获取数据未显示
- c# - 问题:从 C++ MFC 调用 C# Unmanged COM
- php - 在html表格中打印多维关联数组列方式
- sql - 使用 SQL Server 2016 语法如何在表本身可能存在或不存在时使用删除约束“如果存在”?
- ecmascript-6 - 检查表达式的函数参数
- node.js - 在 Listview Flutter 中填充链接引用
- flutter - setState 对 dart/flutter 中的对象有效吗?
- php - “auth”从何而来