我需要將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你想嘗試然後我提供的代碼。 –