有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何将HashMap<String,Object>从一个活动传递到另一个活动

我在第一个活动中的当前代码是

    public final static String doctorDataKEY        = "asLSAD654sdf";

            Intent intent = new Intent(this, Activity_Doctor.class);
            //passing values to user activity
            intent.putExtra(doctorDataKEY, (Parcelable) data);

在第二个活动中

    private Map<String, Object> doctorData = new HashMap<>();

        final Intent intent = getIntent();
        doctorData = (Map<String, Object>) intent.getSerializableExtra(Activity_Doctor_Login.doctorDataKEY);

它没有显示代码中的任何错误,但当我运行应用程序时,当我按下按钮时,它就会崩溃

我认为如果它的地图<;弦,弦>;但由于这是firestore的数据集,我相信我必须使用Map<;字符串,对象>


共 (1) 个答案

  1. # 1 楼答案

    由于您使用的是putExtra(),因此此方法将额外添加为Parcellable,并且在第二个活动中,您将从Serializable获得额外内容。因此,该值将为null,并且由于您将其强制转换为HashMap<>,因此它将引发一个类强制转换异常

    你需要用这个

    getIntent().getExtras().getParcelable(Activity_Doctor_Login.doctorDataKEY)
    

    而不是intent.getSerializableExtra(Activity_Doctor_Login.doctorDataKEY)