我需要将SoapObject
从一个Activity
传递到另一个intent
。那可能吗?如何在意图中将SoapObject从一个Activity传递到另一个
我看不到它实现Serializable
,但它确实实现了KvmSerializable
(尽管我不知道它是什么)。
我需要将SoapObject
从一个Activity
传递到另一个intent
。那可能吗?如何在意图中将SoapObject从一个Activity传递到另一个
我看不到它实现Serializable
,但它确实实现了KvmSerializable
(尽管我不知道它是什么)。
通过意图传递它似乎矫枉过正。只需将它存储在可从两个活动访问的单例或静态类中即可。
Activity
实例之间的传递控制被视为进程间通信。 Intent
包含此“调用约定”的控件和数据参数。
因此,您可以通过的限制。 Intent
只能传递可存储在Bundle
中的对象。这包括“价值”类型,某些类型的ArrayList
,Parcelable
和Serializable
。一个任意的对象不能被传递。有关详细信息,请参见here和here。
该ksoap2 KvmSerializable
不是从Serializable
派生。您必须自己序列化并反序列化它。
你可以做的SoapObject
一个子类,可以直接加入Serializable
它。但是,您必须使用ksoap2 API参与Java Serialization,这意味着您必须实施一些代码来说明您的SoapObject
的“内部”。
另一种替代方法是使SoapObject
子类实现Parcelable
接口。要实现的代码与自定义Java序列化类似。
如果可用,您可以传递原始XML,然后在接收Activity
中重新解析它。
作为最后的手段,@RajanBhavsar上面推荐了一个JSON字符串,这是一个合理的计划。由于ksoap2 API似乎使用“间接”属性模型,我不确定这将如何自动发生。
您是否尝试过使用GSon在String中解析它,并将该String传递给另一个Activity,然后在提取时再次将其转换为SoapObject。因为我也没有使用那个butif你想尝试然后我提供的代码。 –