如何使用Parcelable接口在android中将包含drawable参数的对象传递给另一个活动

时间:2012-11-01 14:19:10

标签: android android-intent android-activity drawable parcelable

我想使用Parcelable Inteface将包含可绘制字段的对象传递给另一个Activity。但问题是,在 类中public void writeToParcel(Parcel parcel, int flags)重写方法(其对象必须发送),我不能拥有“parcel.writeDrawable”类方法。所以其他领域我能够通过,但不是Drawable。 在实现Parcelable Interface之后,我在我的类中添加了以下方法。

public static final Parcelable.Creator<ImageInfo> CREATOR = new Parcelable.Creator<ImageInfo>() {

    public ImageInfo createFromParcel(Parcel source) {
        return new ImageInfo(source);
    }

    public ImageInfo[] newArray(int size) {
        return new ImageInfo[size];
    }
};

public int describeContents() {
    return 1;
}

public void writeToParcel(Parcel parcel, int flags) {
    parcel.writeString(name);   
    parcel.writeString(price);
    parcel.writeString(urlOfImage);
}

并使用以下代码我将我的对象置于意图

Bundle b = new Bundle();
b.putParcelable("parse", imageInfo);
intentTrackIntHome.putExtras(b);

所以我需要做的就是传递那个可绘制的字段。

我知道我可以使用共享首选项,SD卡,全局应用程序类,静态字段;但我不想用它。因为将来我的代码可以改变,所以我想要健壮的代码。

1 个答案:

答案 0 :(得分:2)

将Drawable转换为Bitmap并将其发送到Another Activity。

Bitmap bitmap = ((BitmapDrawable)d).getBitmap();
intent.putExtra("Bitmap", bitmap);

获取,意图

Bitmap bitmap = (Bitmap)this.getIntent().getParcelableExtra("Bitmap");

详细信息Follow this Link