2016-03-02 24 views
0

我有這樣的對象之後:詮釋轉化成不同的東西parcelable

public class CommunityCurrencyContent implements Parcelable { 
    private Double balance; 
    private Long creationDate; 
    private String description; 
    private Double offerCount; 
    private String communityIcon; 
    private String communityDescription; 
    private String communityName; 
    private String[] links; 
    private String code; 
    private Double memberCount; 
    private String communityImage; 
    private Integer pk; 

    public CommunityCurrencyContent(Parcel in) { 
     balance = in.readDouble(); 
     creationDate = in.readLong(); 
     description = in.readString(); 
     offerCount = in.readDouble(); 
     communityIcon = in.readString(); 
     communityDescription = in.readString(); 
     communityName = in.readString(); 
     links = in.createStringArray(); 
     code = in.readString(); 
     memberCount = in.readDouble(); 
     communityImage = in.readString(); 
     pk = in.readInt(); 
    } 

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

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

    public Double getBalance() { 
     return balance; 
    } 

    public Long getCreationDate() { 
     return creationDate; 
    } 

    public String getDescription() { 
     return description; 
    } 

    public Double getOfferCount() { 
     return offerCount; 
    } 

    public String getCommunityIcon() { 
     return communityIcon; 
    } 

    public String getCommunityDescription() { 
     return communityDescription; 
    } 

    public String getCommunityName() { 
     return communityName; 
    } 

    public String[] getLinks() { 
     return links; 
    } 

    public String getCode() { 
     return code; 
    } 

    public Double getMemberCount() { 
     return memberCount; 
    } 

    public String getCommunityImage() { 
     return communityImage; 
    } 

    public Integer getPk() { 
     return pk; 
    } 

    @Override 
    public int describeContents() { 
     return 0; 
    } 

    @Override 
    public void writeToParcel(Parcel parcel, int i) { 
     parcel.writeDouble(this.balance); 
     parcel.writeLong(this.creationDate); 
     parcel.writeString(this.description); 
     parcel.writeDouble(this.offerCount); 
     parcel.writeString(this.communityIcon); 
     parcel.writeString(this.communityDescription); 
     parcel.writeString(this.communityName); 
     parcel.writeString(this.code); 
     parcel.writeDouble(this.memberCount); 
     parcel.writeString(this.communityImage); 
     parcel.writeInt(this.pk); 
    } 
} 

之前,我通過一個意圖通過這個對象的每一個值是正確的。在傳遞pk值和一些字符串值被改變之後。例如pk是5,在傳遞後它變成3801203.

有人可以幫助我,因爲我沒有看到問題。

+0

我想我看到一個輕微的錯誤;在構造函數中嘗試'pk =(Integer)pk.readValue(null);'。我懷疑要將'int'自動裝箱到'Integer',但我不確定沒有任何反向動作 - 自動將一個Integer轉換爲int# – Shark

+2

您閱讀鏈接但您沒有編寫它們?????有一個不匹配的... – 2016-03-02 16:21:45

+0

哦,我錯了,這很可能是鏈接。 – Shark

回答

2

您正在閱讀的鏈接的價值沒有它曾經寫信給你的包裹:

links = in.createStringArray(); 

使用包裹,你需要確保你保持相同的順序讀取和寫入時。

+0

謝謝。我忽略了這一點。 – user1007522