I want to pass a realm object from one activity to another. e.g.
Intent intent = new Intent(MainActivity.this, Second.class);
intent.putExtra("Student", studentObj); // studentObj is a realm object
startActivity(intent);
And receive it from the Second activity
Intent i = getIntent();
student = (Student) i.getSerializableExtra("Student");
but this causes a null pointer exception.
java.lang.RuntimeException: Unable to start activity ComponentInfo{testapp.com.tms/tms.testapp.com.tms.view.SecondActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'io.realm.internal.LinkView io.realm.internal.Row.getLinkList(long)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2693)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2760)
at android.app.ActivityThread.access$900(ActivityThread.java:177)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1448)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5944)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1389)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1184)
Any idea to fix this?
Realm currently doesn't support parsing RealmObjects across Intents natively. So you have 2 options :
Send some identifier instead and requery for the object on the other side.
Use a 3rd party library like Parceler. You can see how here: https://realm.io/docs/java/latest/#parceler
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With