2013-04-02 4 views
7

मैं अपने parcelable करने में एक सूची पारित करने के लिए कोशिश कर रहा हूँ:सूची के लिए parcelable लागू करने के लिए कैसे <Long>

public class MetaDados implements Parcelable { 

private List<Long> sizeImages; 

public MetaDados(List<Long> sizeImages){ 
this.sizeImages = sizeImages; 
} 

public List<Long> getSizeImages() { 
     return sizeImages; 
    } 

    public void setSizeImages(List<Long> sizeImages) { 
     this.sizeImages = sizeImages; 
    } 

@Override 
    public int describeContents() { 
     // TODO Auto-generated method stub 
     return 0; 
    } 

@Override 
    public void writeToParcel(Parcel dest, int flags) { 
dest.writeList(sizeImages); 
} 

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

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

private MetaDados(Parcel in) { 
//HERE IS THE PROBLEM, I'VE tried this: 

sizeImages = in.readList(sizeImages, Long.class.getClassLoader()); 

//but what i got: Type mismatch: cannot convert from void to List<Long> 
} 
} 

उत्तर

15

बजाय इस प्रयास करें:

sizeImages = new ArrayList<Long>(); // or any other type of List 
in.readList(sizeImages, null); 

Android documentation for Parcel.readList का कहना है:

पार्सल

से मौजूदा सूची ऑब्जेक्ट में पढ़ें

और इस प्रकार, आपको पहले List बनाने की आवश्यकता है।

संबंधित मुद्दे