-1

I am trying to pass an object from one activity to another , my object is custom class of java and already implements serializable. the main problem , i can't find a proper way to achieve it.

all answers from other questions on stackoverflow of similar type , does'nt seems to solve my problem .

LogCat:

07-19 01:56:02.058: D/dalvikvm(4811): Late-enabling CheckJNI
07-19 01:56:02.218: I/PGA(4811): Attempting to create new SOCKET connectionn pid = 4811, tid = 4811
07-19 01:56:02.228: I/PGA(4811): New SOCKET connection: com.jutt.dotbot (pid 4811, tid 4811)
07-19 01:56:05.728: D/dalvikvm(4811): JIT code cache reset in 0 ms (1222 bytes 2/0)
07-19 01:56:05.728: D/dalvikvm(4811): GC_FOR_ALLOC freed 192K, 46% free 3775K/6968K, paused 0ms, total 0ms
07-19 01:56:05.738: I/dalvikvm-heap(4811): Grow heap (frag case) to 6.630MB for 560912-byte allocation
07-19 01:56:05.748: D/dalvikvm(4811): GC_FOR_ALLOC freed <1K, 43% free 4323K/7516K, paused 10ms, total 10ms
07-19 01:56:09.848: D/dalvikvm(4811): GC_FOR_ALLOC freed 15K, 43% free 4351K/7516K, paused 10ms, total 10ms
07-19 01:56:09.898: I/dalvikvm-heap(4811): Grow heap (frag case) to 16.785MB for 10618892-byte allocation
07-19 01:56:09.908: D/dalvikvm(4811): GC_FOR_ALLOC freed 20K, 18% free 14700K/17888K, paused 10ms, total 10ms
07-19 01:56:09.938: D/dalvikvm(4811): GC_FOR_ALLOC freed 14K, 16% free 15030K/17888K, paused 10ms, total 10ms
07-19 01:56:10.008: I/dalvikvm-heap(4811): Grow heap (frag case) to 27.990MB for 11432316-byte allocation
07-19 01:56:10.018: D/dalvikvm(4811): GC_FOR_ALLOC freed 1K, 10% free 26193K/29056K, paused 10ms, total 10ms
07-19 01:56:10.038: D/dalvikvm(4811): GC_FOR_ALLOC freed 7K, 10% free 26191K/29056K, paused 0ms, total 0ms
07-19 01:56:10.098: I/dalvikvm-heap(4811): Grow heap (frag case) to 38.775MB for 11312124-byte allocation
07-19 01:56:10.118: D/dalvikvm(4811): GC_FOR_ALLOC freed <1K, 8% free 37238K/40104K, paused 20ms, total 20ms
07-19 01:56:10.148: D/dalvikvm(4811): GC_FOR_ALLOC freed 3K, 8% free 37239K/40104K, paused 10ms, total 10ms
07-19 01:56:10.198: I/dalvikvm-heap(4811): Grow heap (frag case) to 50.183MB for 11962004-byte allocation
07-19 01:56:10.208: D/dalvikvm(4811): GC_FOR_ALLOC freed <1K, 6% free 48921K/51788K, paused 10ms, total 10ms
07-19 01:56:10.238: D/dalvikvm(4811): GC_FOR_ALLOC freed 9K, 6% free 48922K/51788K, paused 10ms, total 10ms
07-19 01:56:10.308: I/dalvikvm-heap(4811): Grow heap (frag case) to 60.312MB for 10618892-byte allocation
07-19 01:56:10.318: D/dalvikvm(4811): GC_FOR_ALLOC freed <1K, 5% free 59292K/62160K, paused 10ms, total 10ms
07-19 01:56:10.348: D/dalvikvm(4811): GC_FOR_ALLOC freed 17K, 5% free 59293K/62160K, paused 10ms, total 10ms
07-19 01:56:10.418: I/dalvikvm-heap(4811): Grow heap (frag case) to 71.720MB for 11962004-byte allocation
07-19 01:56:10.428: D/dalvikvm(4811): GC_FOR_ALLOC freed <1K, 4% free 70975K/73844K, paused 10ms, total 10ms
07-19 01:56:13.688: E/InputEventSender(4811): Exception dispatching finished signal.
07-19 01:56:13.688: E/MessageQueue-JNI(4811): Exception in MessageQueue callback: handleReceiveCallback
07-19 01:56:13.688: E/MessageQueue-JNI(4811): java.lang.RuntimeException: Parcelable encountered IOException writing serializable object (name = com.jutt.dotbot.ScoreSaver)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.os.Parcel.writeSerializable(Parcel.java:1316)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.os.Parcel.writeValue(Parcel.java:1264)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.os.Parcel.writeArrayMapInternal(Parcel.java:618)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.os.Bundle.writeToParcel(Bundle.java:1692)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.os.Parcel.writeBundle(Parcel.java:636)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.content.Intent.writeToParcel(Intent.java:7013)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:2076)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.app.Instrumentation.execStartActivity(Instrumentation.java:1502)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.app.Activity.startActivityForResult(Activity.java:3424)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.app.Activity.startActivityForResult(Activity.java:3385)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.app.Activity.startActivity(Activity.java:3627)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.app.Activity.startActivity(Activity.java:3595)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at com.jutt.dotbot.PointsDrawerActivity.onBackPressed(PointsDrawerActivity.java:205)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.app.Activity.onKeyUp(Activity.java:2193)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.view.KeyEvent.dispatch(KeyEvent.java:2664)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.app.Activity.dispatchKeyEvent(Activity.java:2423)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1962)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:3852)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3826)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3399)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3449)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3418)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3525)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3426)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3582)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3399)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3449)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3418)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3426)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3399)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3449)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3418)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3558)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:3718)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2023)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:1705)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:1696)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:2000)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:141)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.os.MessageQueue.nativePollOnce(Native Method)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.os.MessageQueue.next(MessageQueue.java:138)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.os.Looper.loop(Looper.java:123)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at android.app.ActivityThread.main(ActivityThread.java:5021)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at java.lang.reflect.Method.invokeNative(Native Method)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at java.lang.reflect.Method.invoke(Method.java:515)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:827)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:643)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at dalvik.system.NativeStart.main(Native Method)
07-19 01:56:13.688: E/MessageQueue-JNI(4811): Caused by: java.io.NotSerializableException: android.app.SharedPreferencesImpl
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1364)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1671)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1517)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1481)
07-19 01:56:13.688: E/MessageQueue-JNI(4811):   at java.io.Obj
07-19 01:56:13.688: D/AndroidRuntime(4811): Shutting down VM
07-19 01:56:13.688: W/dalvikvm(4811): threadid=1: thread exiting with uncaught exception (group=0x65d70b20)
07-19 01:56:13.688: D/AndroidRuntime(4811): procName from cmdline: com.jutt.dotbot
07-19 01:56:13.688: E/AndroidRuntime(4811): in writeCrashedAppName, pkgName :com.jutt.dotbot
07-19 01:56:13.698: D/AndroidRuntime(4811): file written successfully with content: com.jutt.dotbot StringBuffer : ;com.jutt.dotbot
07-19 01:56:13.708: I/Process(4811): Sending signal. PID: 4811 SIG: 9
07-19 01:56:13.708: E/AndroidRuntime(4811): FATAL EXCEPTION: main
07-19 01:56:13.708: E/AndroidRuntime(4811): Process: com.jutt.dotbot, PID: 4811
07-19 01:56:13.708: E/AndroidRuntime(4811): java.lang.RuntimeException: Parcelable encountered IOException writing serializable object (name = com.jutt.dotbot.ScoreSaver)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.os.Parcel.writeSerializable(Parcel.java:1316)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.os.Parcel.writeValue(Parcel.java:1264)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.os.Parcel.writeArrayMapInternal(Parcel.java:618)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.os.Bundle.writeToParcel(Bundle.java:1692)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.os.Parcel.writeBundle(Parcel.java:636)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.content.Intent.writeToParcel(Intent.java:7013)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:2076)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1502)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.app.Activity.startActivityForResult(Activity.java:3424)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.app.Activity.startActivityForResult(Activity.java:3385)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.app.Activity.startActivity(Activity.java:3627)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.app.Activity.startActivity(Activity.java:3595)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at com.jutt.dotbot.PointsDrawerActivity.onBackPressed(PointsDrawerActivity.java:205)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.app.Activity.onKeyUp(Activity.java:2193)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.view.KeyEvent.dispatch(KeyEvent.java:2664)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.app.Activity.dispatchKeyEvent(Activity.java:2423)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1962)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:3852)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3826)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3399)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3449)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3418)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3525)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3426)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3582)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3399)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3449)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3418)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3426)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3399)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3449)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3418)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3558)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:3718)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2023)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:1705)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:1696)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:2000)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:141)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.os.MessageQueue.nativePollOnce(Native Method)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.os.MessageQueue.next(MessageQueue.java:138)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.os.Looper.loop(Looper.java:123)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at android.app.ActivityThread.main(ActivityThread.java:5021)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at java.lang.reflect.Method.invokeNative(Native Method)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at java.lang.reflect.Method.invoke(Method.java:515)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:827)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:643)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at dalvik.system.NativeStart.main(Native Method)
07-19 01:56:13.708: E/AndroidRuntime(4811): Caused by: java.io.NotSerializableException: android.app.SharedPreferencesImpl
07-19 01:56:13.708: E/AndroidRuntime(4811):     at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1364)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1671)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1517)
07-19 01:56:13.708: E/AndroidRuntime(4811):     at java.io.ObjectOutputStream.w
Zulqurnain Jutt
  • 298
  • 3
  • 20
  • This question has already been answered [here][1] [1]: http://stackoverflow.com/questions/2736389/how-to-pass-object-from-one-activity-to-another-in-android – Sascha Kolberg Jul 18 '15 at 20:32
  • possible duplicate of [How to send an object from one Android Activity to another using Intents?](http://stackoverflow.com/questions/2139134/how-to-send-an-object-from-one-android-activity-to-another-using-intents) – Sascha Kolberg Jul 18 '15 at 20:33
  • i have seen many questions about it , but i don't know that example of serializable method , don't seems to work for me , rather it crashes my activity. – Zulqurnain Jutt Jul 18 '15 at 20:41
  • @SaschaKolberg i have added my custom class which is serializable but still i can't seem to tranfer it from one activity to another for some reason. – Zulqurnain Jutt Jul 18 '15 at 20:46
  • It might help If you would share any error logs you see. Or describe in more detail how the transfer fails. – Sascha Kolberg Jul 18 '15 at 20:51
  • ok let me post logcat logs. – Zulqurnain Jutt Jul 18 '15 at 20:52
  • Does the Serializable class has any inner class? If so, mark that as serializable too. – Samrat Dutta Jul 19 '15 at 03:45
  • I agree with Samrat, your Serializable implementation seems buggy. You might wanna unit test your serializables. – Sascha Kolberg Jul 19 '15 at 06:41

2 Answers2

0

In the first Activity to pass :

Intent intent = new Intent(First.this, Second.class);
intent.putExtra("ObjectToPass", myObject);  
startActivity(intent);

In Second Activity to retrieve object :

MyObject myObject = (MyObject) getIntent().getSerializableExtra("ObjectToPass");

This is assuming that MyObject class already implements Serializable.

Samrat Dutta
  • 1,727
  • 1
  • 11
  • 23
0

I think you can call intent.putExtra("key", obj) on your intent when obj is your object and key the key you want to store the object in. In the started activity you can call getIntent().getSerializableExtra("key") to get your object back. See this link.

Luca Schimweg
  • 747
  • 5
  • 18