Я хочу передать объект из одного действия в другое через намерение. но я получаю эту ошибку
New hash 0 is before end of array hash 3552645 at index 1 key null
действие 1:
Intent intent = new Intent(Activity1.this, activity2.class);
intent.putExtra("mission", mission);
intent.putExtra("task", task);
startActivity(intent);
действие 2:
Intent intent = getIntent();
mission = intent.getParcelableExtra("mission");
task = intent.getParcelableExtra("task");
вот мой журнал:
New hash 0 is before end of array hash 3552645 at index 1 key null java.lang.RuntimeException: here at android.util.ArrayMap.append(ArrayMap.java:521) at android.os.Parcel.readArrayMapInternal(Parcel.java:2618) at android.os.BaseBundle.unparcel(BaseBundle.java:221) at android.os.Bundle.getParcelable(Bundle.java:786) at android.content.Intent.getParcelableExtra(Intent.java:6223) at com.iperiatech.sams.mvp.Missions.TaskDetailActivity.onCreate(TaskDetailActivity.java:82) at android.app.Activity.performCreate(Activity.java:6877) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1136) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3208) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3351) at android.app.ActivityThread.access$1100(ActivityThread.java:222) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1796) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:158) at android.app.ActivityThread.main(ActivityThread.java:7230) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Да, это посылка
Я предполагаю, что ваша проблема в том, что ваши методы parcel и unparcel несовместимы. Пожалуйста, опубликуйте эти методы, и мы сможем их посмотреть. Или вы можете сами посмотреть на них.
Попробуй это
Intent intent = new Intent(activity1.this, activity2.class);
Bundle args = new Bundle();
args .putSerializable("mission",(Serializable) mission);
args.putSerializable("task",(Serializable) task);
intent.putExtra("DATA", args);
startActivity(intent);
и получить вот так
Intent myIntent = getIntent();
Bundle myBundle = myIntent.getBundleExtra("DATA");
if (myBundle != null) {
mission = myBundle.getSerializable("mission");
task = myBundle.getSerializable("task");
}
Я пытаюсь реализовать Parcelable, который больше связан с Android, чем с Serializable. Ваше решение работает так же, как Parcelable как Serializable.
Ваш объект подлежит отправке?