2016-09-27 47 views
-2

有沒有什麼辦法可以在Activity之間傳遞不可序列化的數據? 例如,如何傳遞到一個Intent這個類,如果我不能序列FieldForSomeReasonNotSerializable(如位圖,經緯度是谷歌的TextView):有什麼辦法可以在Activity之間傳遞不可序列化的參數嗎?

class MyClass implements java.io.Serializable{ 
     String s = "serializable"; 
     FieldForSomeReasonNotSerializable field=new FieldForSomeReasonNotSerializable(); 
} 
+0

你應該通過一個路過的位圖意圖你應該將該位圖保存到磁盤,然後傳遞該位圖的文件URL。你也不應該在意圖傳遞一個'View' – tyczj

+0

我知道,這只是一個例子.. LatLng.class呢? –

+0

LatLng實現了parcelable,因此您可以通過意圖 – tyczj

回答

2

您可以實現Parcelable而不是Serializable接口。從android Studio嚮導(紅色燈泡)將幫助您實現Parcelable界面。只需點擊器具的方法,然後在類名相同的紅色球加parcelable實施

公共類CategoryDTO實現Parcelable {

@PrimaryKey 
private String id; 

/** 
* Category Name 
*/ 
private String name; 

/** 
* Category Color 
*/ 
private String color; 


public CategoryDTO() { 

} 

public CategoryDTO(String id, String name, String color) { 
    this.name = name; 
    this.color = color; 
    this.id = id; 
} 

protected CategoryDTO(Parcel in) { 
    id = in.readString(); 
    color = in.readString(); 
    name = in.readString(); 

} 

public static final Creator<CategoryDTO> CREATOR = new Creator<CategoryDTO>() { 
    @Override 
    public CategoryDTO createFromParcel(Parcel in) { 
     return new CategoryDTO(in); 
    } 

    @Override 
    public CategoryDTO[] newArray(int size) { 
     return new CategoryDTO[size]; 
    } 
}; 

}

+0

謝謝!這是非常有趣的Parcelablizatio(?),現在我正在閱讀有關java文檔.. –

+0

你歡迎好友 –

相關問題