2016-04-08 26 views
1

Benim sınıfı:Android'de Parcelable'da in.readInt() eşittir (Tamsayı) in.readValue (Integer.class.getClassLoader()) var mı?

public class XXX implements Parcelable { 
    private Integer id; 
    private String title; 
    private String content; 

... 
    @Override 
    public void writeToParcel(Parcel dest, int flags) { 
     dest.writeValue(this.id); 
     dest.writeString(this.title); 
     dest.writeString(this.content); 

    } 

    protected XXX(Parcel in) { 
     this.id = (Integer) in.readValue(Integer.class.getClassLoader()); 

     this.title = in.readString(); 
     this.content = in.readString(); 

    } 

    public static final Parcelable.Creator<XXX> CREATOR = new Parcelable.Creator<XXX>() { 
     @Override 
     public XXX createFromParcel(Parcel source) { 
      return new XXX(source); 
     } 

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

Parsel gelen kimliği almak için iki yol vardır:

this.id = (Integer) in.readValue(Integer.class.getClassLoader()); 

ve

id = in.readInt(); 

kullanmalıyım

? Ya da herhangi biri?

cevap

1

İşlev readInt int değeri içindir. Tamsayı sınıf nesnesi int'den başka bir şeydir. Bunun için readValue kullanın.

Ayrıca, kimlik alanının Tamsayı mı, yoksa int olabileceğini düşünebilirsiniz.