如何在Android中将gson序列化对象传递给Intent? [英] How to pass gson serialised object to Intent in android?

查看:253
本文介绍了如何在Android中将gson序列化对象传递给Intent?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

intent.putExtra(com.example, VO); // vo是gson序列化的对象。



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

  java.lang.RuntimeException:遇到Parcelable IOException写入可序列化的对象(name = com.example.da)
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)$ android
.app.Activity.startActivityForResult(Activity.java:3351)
at android.app.Activity.startActivity(Activity.java:3587)
at android.app.Activity.startActivity(Activity.java:3555 )


解决方案

不,您正在以错误的方式使用它。



将对象置于意图中:

  Gson gson =新的Gson(); 
Intent intent = new Intent(Source.this,Target.class);
intent.putExtra(obj,gson.toJson(yourObject));

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

  Gson gson = new Gson(); 
String strObj = getIntent()。getStringExtra(obj);
SourceObject obj = gson.fromJson(strObj,SourceObject.class);


i am trying to pass the gson serialised object to intent by using the below code

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

but it is throwing the run time exception, Please help.

   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)

解决方案

No you are using it in the wrong way.

Put the object in the intent as:

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

and get the object in another activity as:

Gson gson = new Gson();
String strObj = getIntent().getStringExtra("obj");
SourceObject obj = gson.fromJson(strObj, SourceObject.class);

这篇关于如何在Android中将gson序列化对象传递给Intent?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆