首页 > 解决方案 > 将数据从片段发送到另一个活动时不调用 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 也没有被调用。

请帮我从我的片段中获取数据

标签: javaandroidandroid-fragmentskotlinonactivityresult

解决方案


在您的代码中,activity?.setResult(PartDetailActivity.MENU, intentMenu)应更改为activity?.setResult(Activity.RESULT_OK, intentMenu).

如果在此更改之后它仍然无法正常工作,请务必使用 startActivityForResult 启动您的活动。


推荐阅读