Android 如果对象不可实现序列化或Parceble,如何将对象传递给新活动?

Android 如果对象不可实现序列化或Parceble,如何将对象传递给新活动?,android,android-activity,Android,Android Activity,我想通过意图将我的目标传递给新的活动。但是我不能改变我的objet并从Serializable或Parceble实现它。我怎样才能用另一种方式传递这个物体 最简单的选择是 尽管我应该提到,gson比可包裹或可Seralizable慢一点。如果您的类足够简单,那么将它们包装到您自己的parcelable类中可能是值得的。您可以手动重新创建它吗?即调用其构造函数和设置器。如果是,您应该创建一个Parcelable作为对象的包装器。您还可以编写一个POJO,表示在“活动”上重建对象所需的数据,并使该类

我想通过意图将我的目标传递给新的活动。但是我不能改变我的objet并从Serializable或Parceble实现它。我怎样才能用另一种方式传递这个物体

最简单的选择是


尽管我应该提到,gson比可包裹或可Seralizable慢一点。如果您的类足够简单,那么将它们包装到您自己的parcelable类中可能是值得的。

您可以手动重新创建它吗?即调用其构造函数和设置器。如果是,您应该创建一个Parcelable作为对象的包装器。

您还可以编写一个POJO,表示在“活动”上重建对象所需的数据,并使该类为Parcelble或Serializable,然后传递该POJO,并生成一个方法,从POJO构建您类型的对象,而不使用Parcelble或Serializable不能传递java对象。就这样。您可以创建一个哈希映射实例,并将值存储在一个键值对中,然后将其放入一个捆绑包中,并将其按意图传递给另一个活动,但这不是模块化的方式

您可以为此使用JSON。 首先,您必须创建一个POJO类,然后在第一个活动中执行以下操作。对象是您的POJO类

Object obj = new Object();
String toJson = new Gson().toJson(obj);
Intent intent = new Intent(this, MainActivity.class);
intent.putExtra("json", toJson);
startActivity(intent);
现在在第二个活动中执行以下操作

String stringExtra = getIntent().getStringExtra("json");
Object fromJson = new Gson().fromJson(stringExtra, Object.class);

现在,您可以使用“fromJson”访问POJO类的setter和getter。

向上投票,因为:1º这是一个可能的解决方案,2º有人只是不经过推理就投票,就像通常的那样,