gpt4 book ai didi

java - startActivityForResult() 返回 RESULT_CANCELED

转载 作者:搜寻专家 更新时间:2023-11-01 09:41:45 26 4
gpt4 key购买 nike

我有 2 个 Activity 类和 1 个 Non-Activity 类,它们从传入构造函数的 Context 调用 startActivityForResult()。它看起来是这样的:FirstActivity -> NonActivity -> SecondActivity -> FirstActivity。结果,在 SecondActivity 中有自定义对象的 ArrayList 需要传递给 FirstActivity。这儿存在一个问题。当调用 onActivityResult() 时,resultCode 是 RESULT_CANCELED,但不是 RESULT_OK,即使调用了 setResult(RESULT_OK, intent)。这是我的代码:

非 Activity

public void showActivity() {
Intent intent = new Intent(request, ActivityKorak.class);
intent.putExtra("data", fields);

request.startActivityForResult(intent, 1);
}

第二个 Activity

@Override
public void onBackPressed() {
super.onBackPressed();

Intent intent = new Intent();
intent.putExtra("data", fields);
setResult(Activity.RESULT_OK, intent);

finish();
}

FirstActivity

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent){
super.onActivityResult(requestCode, resultCode, intent);
if(resultCode != Activity.RESULT_CANCELED){
if(requestCode == 1) {
Bundle extras = intent.getExtras();
ArrayList<CustomInput> fields = (ArrayList<CustomInput>) extras.getSerializable("data");
}
}
}

最佳答案

你必须简单地删除

super.onBackPressed();

在onBackPressed方法中

发生的事情是“super.onBackPressed()”将结果代码设置为“RESULT_CANCELED”并完成您的 Activity 。

关于java - startActivityForResult() 返回 RESULT_CANCELED,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39581317/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com