如果对象未实现Serializable或Parceble,如何将对象传递给新活动?

时间:2015-09-02 08:27:48

标签: android android-activity

我想通过意图将我的对象传递给新的Activity。但我不能改变我的对象并从Serializable或Parceble实现它。我怎样才能以另一种方式传递这个物体?

5 个答案:

答案 0 :(得分:0)

最简单的选择是gson

虽然我应该提到gson比Parcelable或Seralizable慢一点。如果你的课程足够简单,那么将它们包装在你自己的可分类课程中是值得的。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

您还可以编写一个POJO,表示在活动上重建对象所需的数据,然后使该类Parceble或Serializable传递该pojo并创建一个方法,从pojo构建您的类型的对象

答案 3 :(得分:0)

如果不使用parceble或serializable,则无法传递java对象。而已。您可以在键值对中创建哈希映射和存储值的实例,然后将其放在一个包中并将其传递给另一个活动,但这是 NOT 模块化的方法它。

答案 4 :(得分:0)

您可以将JSON用于此目的。 首先,您必须创建一个POJO类,然后在FirstActivity中执行以下操作。对象是您的POJO类。

Object obj = new Object();
String toJson = new Gson().toJson(obj);
Intent intent = new Intent(this, MainActivity.class);
intent.putExtra("json", toJson);
startActivity(intent);

现在在SecondActivity中执行以下操作。

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

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