Android 从未调用onActivityResult()

Android 从未调用onActivityResult(),android,kotlin,android-activity,onactivityresult,Android,Kotlin,Android Activity,Onactivityresult,我的onActivityResult()和setResult()有问题 我一周前开始android开发,非常抱歉 你能帮我吗 以下是我的代码片段: ListActivity函数单击 val myadapter = ItemAdapter(); list_recycler_view.layoutManager = LinearLayoutManager(this) list_recycler_view.adapter = myadapter val me = thi

我的
onActivityResult()
setResult()
有问题

我一周前开始android开发,非常抱歉

你能帮我吗

以下是我的代码片段:

ListActivity函数单击

    val myadapter = ItemAdapter();
    list_recycler_view.layoutManager = LinearLayoutManager(this)
    list_recycler_view.adapter = myadapter
    val me = this;
        myadapter.setOnItemClickListener(object : ItemAdapter.OnItemClickListener {
            override fun onItemClick(item: Item) {
                val intent = Intent(me, DetailActivity::class.java)
                intent.putExtra("item", item)
                startActivityForResult(intent, 2)
            }
        })
在ActivityResult上列出活动函数

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        Log.d("reponse","coucou5");
        Log.d("reponse",requestCode.toString());
        Log.d("reponse",resultCode.toString());
        if (requestCode == 2 && resultCode == RESULT_OK) {

            val item = data?.getParcelableExtra<Item>("item") as Item
            Log.d("reponse-update",item.toString());
            if (item == null) {
                Toast.makeText(this, "Could not update! Error!", Toast.LENGTH_SHORT).show()
            }

            //ItemListViewModel.update(item);

        } else {
            Toast.makeText(this, "Note not saved!", Toast.LENGTH_SHORT).show()
        }
    }

似乎从来没有调用过
onActivityResult()
我认为这是因为您没有创建另一个将信息发送回的意图,请执行此操作并检查是否对您有效

在“详细信息”活动中执行此操作,而不是在代码中粘贴此操作

btnSave.setOnClickListener{
        //other props
        item.gid = gid;
        item.distance = distance
        Log.d("reponse",item.toString());
        Log.d("reponse","coucou4");
        Intent returnIntent = Intent();
        returnIntent.putExtra("item", item)
        setResult(2, returnIntent)
        finish()
    }
您正在传递结果\u OK,这不是必需的,它由Android框架本身处理。

Replace

val returnIntent = intent
为了


似乎我在适配器上声明了2个侦听器,因此startActivityForResult不会触发

什么是
myadapter
?我添加了实例,你想要类吗?你能将此行“setResult(Activity.RESULT\u OK,returnIntent)”更改为“setResult(2,returnIntent)”。没有任何更改,我的
“coucou4”
文本正在显示,但在
onActivityResult()
中未显示
“coucu5”
能否尝试在setResult()之前将新的意图指定为val returnIntent=new intent()。
val returnIntent=intent()returnIntent.putExtra(“项”,项)setResult(2,returnIntent)finish()
无更改,text
coucu5
不显示暂时删除if语句的第二部分。jus类似,
if(requestCode==2)
并检查它是否有效。如果它不起作用,请告诉我,我会进一步调查。即使你的答案是正确的,我只想看看会发生什么。请查看此链接。我想帮助您解决这个问题,所以请在查看后更新我。是的,我做了
val returnIntent=Intent()
,但没有任何更改
val returnIntent = intent
val returnIntent = new Intent()