我想将Annonce
类型的对象传递给Intent。如您所见,如果类属性是基元,那么它很简单。在我的情况下,我有一个图像(位图)和类型Client
的属性(我创建了一个Client
类)。
我的解决方案是访问Client
属性(使用getter和setter)并逐个解析writeToParcel
方法(花费太多时间),对于图像,我发送它mainActivity
使用ByteArrayOutputStream
。任何人都可以帮助我在Annonce
课程中完成所有工作。
public class Annonce implements Parcelable {
String article, desc, temps, ville, categorie;
int prix;
Bitmap img;
Client c;
public Annonce(String article, String desc, String temps, String ville,
String categorie, int prix, Bitmap img, Client c) {
this.article = article;
this.desc = desc;
this.c = c;
this.prix = prix;
this.img = img;
this.temps = temps;
this.categorie = categorie;
this.ville = ville;
}
public static final Parcelable.Creator<Annonce> CREATOR = new Parcelable.Creator<Annonce>() {
public Annonce createFromParcel(Parcel source) {
return new Annonce(source);
}
public Annonce[] newArray(int size) {
return new Annonce[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int i) {
parcel.writeString(article);
parcel.writeString(desc);
parcel.writeString(temps);
parcel.writeString(ville);
parcel.writeString(categorie);
parcel.writeInt(prix);
}
public Annonce(Parcel source) {
article = source.readString();
desc = source.readString();
temps = source.readString();
ville = source.readString();
categorie = source.readString();
prix = source.readInt();
}
}
答案 0 :(得分:0)
具有“位图”类型的属性不是一个好的解决方案。取而代之的是,我们可以使用图像的路径来引用位图图像。 此外,我们可以将客户端转换为parcelable对象,以便通过intent发送它。