gpt4 book ai didi

android - 即使我发送了一个 Intent ,OnActivityResult 也会在 Intent 通过时得到 null

转载 作者:行者123 更新时间:2023-11-29 15:36:12 26 4
gpt4 key购买 nike

我有两个 Activity 。使用 startActivityForResult(intent,request_code) 从第一个 Activity 调用第二个 Activity 。在第二个 Activity 中,我有这段代码:

Intent i = getIntent();
i.putExtra("data" , some data);
setResult(Activity.RESULT_OK,i);
finish();

然后,为了在第一个 Activity 中获取数据,我使用以下代码:

    @Override
protected void onActivityResult(int requestCode,int resultCode,Intent intent)
{
super.onActivityResult(requestCode, resultCode, data);
if (requestCode==this.uploadRequestCode && resultCode == Activity.RESULT_OK)
{
data = intent.get("data")
}

我这样开始 Activity :

Intent uploadIntent = new Intent(this,uploadActivity.class)
startActivityForResult(uploadIntent,this.uploadRequestCode)

问题是我得到的结果代码是 RESULT_CANCELLED,即使我设置了 RESULT_OK。

注意

我说的不是按下后退按钮的情况。

更新

我发现我在 onActivityResult() 中获得的 Intent 是空的,即使我发送了一个 Intent ,这就是结果代码为 RESULT_CANCELLED 的原因。

有人知道为什么 Intent 为空吗?

最佳答案

也许这可以帮助你,来 self 的一个项目

这是我开始 Activity 的方式

Intent intent = new Intent(FirstActivity.this, ActivityThatReturnInfo.class);
startActivityForResult(intent, 1);

这是我想返回一些值的 Activity

Intent returnIntent = new Intent();
returnIntent.putExtra("VAR",someInfo);
setResult(Activity.RESULT_OK,returnIntent);
finish();

这是在开始等待信息的 Activity 上

protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
switch (requestCode)
{
case 1:
if(resultCode == Activity.RESULT_OK)
{
String result = data.getStringExtra("VAR");
// Code to do
}
break;
default:
IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if(result != null)
{
if(result.getContents() != null)
{
// Code to do
}
}
break;
}
}

关于android - 即使我发送了一个 Intent ,OnActivityResult 也会在 Intent 通过时得到 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49532998/

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