我有一個活動,其中包含mqttQndroidClient
類型的對象。這個對象我想將它傳遞給另一個活動。爲了實現這一點,我閱讀有關如何解決這樣的問題,我發現soltion是建立如下所示實現serializable
類的,我做了以下內容:如何創建Serializable對象並傳遞給bundle.putSerializable(key,value)
client = new mqttAndroidClient(..,...,..,..,);
Intent i = new Intent(act_1.this, act_2.class)
clientObject = clientObj = new (CLIENT_OBJ_KEY, client);
Bundle b = new Bundle();
b.putSerializable(CLIENT_OBJ_KEY, clientOb.getObjValue());
但是Eclipse強調b.putSerializable(CLIENT_OBJ_KEY, clientObjValue());
紅色,它似乎我沒有正確地創造出一個serializable
對象。
和實現serializable
,如下看起來clientObject
類:
public class ClientObject implements Serializable {
private String objectKey;
private MqttAndroidClient objectValue;
public ClientObject(String objectKey, MqttAndroidClient objectValue) {
this.objectKey = objectKey;
this.objectValue = objectValue;
}
public void setObjKey(String objectKey) {
this.objectKey = objectKey;
}
public String getObjKey() {
return this.objectKey;
}
public void setObjValue(MqttAndroidClient objValue) {
this.objectValue = objValue;
}
public MqttAndroidClient getObjValue() {
return this.objectValue;
}
}
這是因爲mqqtAndroidClient本身是不可序列。 clientObjectValue()返回一個mqqtAndroidClient類型的對象,這不是可序列化的。 – stealthjong 2014-11-25 08:56:13
實際上你有一個可序列化的對象。只需將實現可序列化的類的對象傳遞給捆綁值即可。 – LetsamrIt 2014-11-25 09:05:16
@LetsAmrIt由於該類具有不可序列化的成員,細紅線將在運行時變成異常。 – EJP 2014-11-25 09:31:43