2015-08-03 84 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似乎使用「間接」屬性模型,我不確定這將如何自動發生。

相關問題