当前位置: 首页 > 知识库问答 >
问题:

在两个活动之间使用HashMap传递结果失败

冯星阑
2023-03-14

背景:

  • 有两项活动
  • 1x(主活动),1x(子活动-具有列表视图的活动)
  • 主活动扩展了碎片活动,信息将在碎片中使用
  • 单击主活动的菜单项时,子活动将打开
  • 为ListView使用HashMap

我的目标:

  • 单击项的HashMap值应发送回主活动,子活动(带有ListView)应关闭

问题:

java.lang.RunTimeException: Failure delivering results ResultInfo{who=null, request=1, 
result=0, data=Intent { (has extras) }} to activity.

我认为我犯了一个巨大的错误,但我无法解决它。

从onOptionsItemSelected和onActivityResult切换案例在主活动中:

>

  • PICKED的值为1;

    item.getItemId

    case R.id.icon:
        Intent myIntent = new Intent(MainActivity.this, HeroListActivity.class);
        MainActivity.this.startActivityForResult(myIntent, PICKED);
        return true;
    default:
        return super.onOptionsItemSelected(item);
    } 
    
    
    
    protected void onActivityResult(int requestCode, int resultCode, Intent data){
            super.onActivityResult(requestCode, resultCode, data);
            if (requestCode == 1) {
                Intent intent = getIntent();
                HashMap<String, String> aList = (HashMap<String, String>)intent.getSerializableExtra("map");
                Log.d("HashMap", aList.get("Name"));
            }
    

    }

    使用ListView单击子活动:

    >

    HashMap<String, String> o = (HashMap<String, String>) adapter.getItemAtPosition(position);
    Log.d("onItemClick", ""+o);
    
    Intent intent = new Intent();
    
    intent.putExtra("map", o);
    setResult(RESULTS_OK, intent);
    finish();
    

    希望有人能帮帮我,提前感谢。

  • 共有1个答案

    寿鸣
    2023-03-14

    您应该在方法中替换这一行

     Intent intent = getIntent();
    

    有了这个:

     Intent intent = data;
    

    data是您传入的参数的名称-这是您的附加内容所在的位置。getIntent()调用在此实例中返回null意图。

     类似资料:
    • 我试图在我的android应用程序中的两个活动之间传递数据,我想使用HashMap(我不想使用Intent)。以下是我的代码: DataHolder.java 在第一个活动中设置值 在其他活动中获得价值 当我用它在activity1到activity2之间传递数据时,它会起作用,但在那之后,当在activity2到activity3之间传递数据时,返回null,因此强制转换为(整数)会导致错误。在

    • 我试图将一个活动(LensActivity)中的ArrayList中的值传递给我的主活动上的TextView。在这个网站上,我找到了Intent方法并进行了实验,但似乎无法传递它,信息被提取到字符串lensString中,并传递到Intent,但在主活动中似乎没有传递或获取TextView,在一些实验中,由于getIntent在主活动中,我得到了一个空指针。 这是LensActivity的代码,它

    • 我正在开发一个由多个活动组成的Android应用程序,我必须在它们之间传递ab对象,但我不能通过使用意图传递它,因为对象的类没有实现可序列化,我怎么做?我无法修改我的类的源代码。谢谢:)

    • 我想知道是否有人可以帮助我用Intent修复此错误? 我有两个活动要连接:网格视图“MainActivity.kt”的第一个活动,列表视图“Main2Activity.kt”的第二个活动,我有来自“Main2Activity.kt”的2个对象实例(adapter1,adapter2 ),当单击“MainActivity.kt”中的特定图像时,我想传递特定的对象实例(adapter1)或(adapt

    • 我成功地尝试在三个活动之间传递数据。那就是: (数据3)活动1(数据1)- 现在的问题是: 我希望使用条件在这些活动之间传递数据。这是在Activity2中,在将数据发送到Activity3之前,我想检查一下 这是名为PickCard的Activity1的代码。Java语言 下面是Activity2 BuildWord的代码。Java语言 这是名为DropCard的Activity3的代码。Jav