发送自定义对象到意图android

时间:2015-07-16 01:03:56

标签: android android-intent parcelable

我想将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();
    }
}

1 个答案:

答案 0 :(得分:0)

具有“位图”类型的属性不是一个好的解决方案。取而代之的是,我们可以使用图像的路径来引用位图图像。 此外,我们可以将客户端转换为parcelable对象,以便通过intent发送它。

相关问题