2015-08-03 86 views
0

我需要将SoapObject从一个Activity传递到另一个intent。那可能吗?如何在意图中将SoapObject从一个Activity传递到另一个

我看不到它实现Serializable,但它确实实现了KvmSerializable(尽管我不知道它是什么)。

+0

您是否尝试过使用GSon在String中解析它,并将该String传递给另一个Activity,然后在提取时再次将其转换为SoapObject。因为我也没有使用那个butif你想尝试然后我提供的代码。 –

回答

1

通过意图传递它似乎矫枉过正。只需将它存储在可从两个活动访问的单例或静态类中即可。

2

Activity实例之间的传递控制被视为进程间通信。 Intent包含此“调用约定”的控件和数据参数。

因此,您可以通过的限制。 Intent只能传递可存储在Bundle中的对象。这包括“价值”类型,某些类型的ArrayListParcelableSerializable。一个任意的对象不能被传递。有关详细信息,请参见herehere

该ksoap2 KvmSerializable不是从Serializable派生。您必须自己序列化并反序列化它。

你可以做的SoapObject一个子类,可以直接加入Serializable它。但是,您必须使用kso​​ap2 API参与Java Serialization,这意味着您必须实施一些代码来说明您的SoapObject的“内部”。

另一种替代方法是使SoapObject子类实现Parcelable接口。要实现的代码与自定义Java序列化类似。

如果可用,您可以传递原始XML,然后在接收Activity中重新解析它。

作为最后的手段,@RajanBhavsar上面推荐了一个JSON字符串,这是一个合理的计划。由于ksoap2 API似乎使用“间接”属性模型,我不确定这将如何自动发生。

相关问题