如何在android中将gson序列化对象传递给Intent?

ida*_*ida 10 serialization android gson android-intent

我试图通过使用下面的代码将gson序列化对象传递给intent

intent.putExtra("com.example", vo); // vo is the gson serialised object.

但它是抛出运行时异常,请帮忙.

   java.lang.RuntimeException: Parcelable encountered IOException writing serializable    object (name = com.example.d.a)
            at android.os.Parcel.writeSerializable(Parcel.java:1285)
            at android.os.Parcel.writeValue(Parcel.java:1233)
            at android.os.Parcel.writeMapInternal(Parcel.java:591)
            at android.os.Bundle.writeToParcel(Bundle.java:1646)
            at android.os.Parcel.writeBundle(Parcel.java:605)
            at android.content.Intent.writeToParcel(Intent.java:6831)
            at     android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:1927)
            at android.app.Instrumentation.execStartActivity(Instrumentation.java:1419)
            at android.app.Activity.startActivityForResult(Activity.java:3390)
            at android.app.Activity.startActivityForResult(Activity.java:3351)
            at android.app.Activity.startActivity(Activity.java:3587)
            at android.app.Activity.startActivity(Activity.java:3555)
Run Code Online (Sandbox Code Playgroud)

Nul*_*ion 33

不,你是以错误的方式使用它.

将对象放在intent中:

Gson gson = new Gson();
Intent intent = new Intent(Source.this, Target.class);
intent.putExtra("obj", gson.toJson(yourObject));
Run Code Online (Sandbox Code Playgroud)

并在另一个活动中获取对象:

Gson gson = new Gson();
String strObj = getIntent().getStringExtra("obj");
SourceObject obj = gson.fromJson(strObj, SourceObject.class);
Run Code Online (Sandbox Code Playgroud)