【发布时间】:2018-09-11 11:38:21
【问题描述】:
我想通过意图将一个对象从一个活动传递到另一个活动。但我得到这个错误
新哈希 0 位于数组哈希 3552645 的末尾之前,索引 1 键为空
活动一:
Intent intent = new Intent(Activity1.this, activity2.class);
intent.putExtra("mission", mission);
intent.putExtra("task", task);
startActivity(intent);
活动二:
Intent intent = getIntent();
mission = intent.getParcelableExtra("mission");
task = intent.getParcelableExtra("task");
这是我的日志:
新的哈希 0 在数组哈希 3552645 的结尾之前,索引 1 键为空 java.lang.RuntimeException:这里 在 android.util.ArrayMap.append(ArrayMap.java:521) 在 android.os.Parcel.readArrayMapInternal(Parcel.java:2618) 在 android.os.BaseBundle.unparcel(BaseBundle.java:221) 在 android.os.Bundle.getParcelable(Bundle.java:786) 在 android.content.Intent.getParcelableExtra(Intent.java:6223) 在 com.iperiatech.sams.mvp.Missions.TaskDetailActivity.onCreate(TaskDetailActivity.java:82) 在 android.app.Activity.performCreate(Activity.java:6877) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1136) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3208) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3351) 在 android.app.ActivityThread.access$1100(ActivityThread.java:222) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1796) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:158) 在 android.app.ActivityThread.main(ActivityThread.java:7230) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
【问题讨论】:
-
你的对象是 Parcelable 吗?
-
是的,可以打包
-
我认为您的问题是您的
parcel和unparcel方法不一致。请发布这些方法,我们可以看看。或者您可以自己查看它们。