我有一个客户对象类,我需要将它从一个活动传递到另一个活动。我使用 parcelable 来帮助我做到这一点,但我遇到了一些问题
1)双数组变量#(现在的主要问题)
我可以writeDoubleArray
但我不能readDoubleArray
这条线in.readDoubleArray();
用红色下划线表示:
“
readDoubleArray(double[])
Parcel 类型中的方法不适用于参数 ()”
2) 日历变量
我不知道用什么函数来写日历所以我只是试过writeValue
我没有测试它是否正常工作。我需要这方面的建议
3) 可绘制变量
我的对象中有一个可绘制属性,我已经搜索了一个解决方案并使用了它,但当前的那个说它已被折旧。所以我也不确定它是否会起作用。我也需要这方面的建议
我希望你能帮助我。谢谢!
我的代码:
//My attributes
public class Event {
public int eventID;
public String eventName;
public String eventDesc;
public String category;
public String vendor;
public String venue;
public Calendar startDateTime;
public Calendar endDateTime;
public Drawable eventImage;
public double[] price;
public double lat;
public double lng;
....
//Other constructors here
....
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(eventID);
dest.writeString(eventName);
dest.writeString(eventDesc);
dest.writeString(category);
dest.writeString(vendor);
dest.writeString(venue);
dest.writeValue(startDateTime);
dest.writeValue(endDateTime);
Bitmap bitmap = (Bitmap) ((BitmapDrawable) eventImage).getBitmap();
dest.writeParcelable(bitmap,flags);
dest.writeDoubleArray(price);
dest.writeDouble(lat);
dest.writeDouble(lng);
}
private void readFromParcel(Parcel in) {
eventID = in.readInt();
eventName = in.readString();
eventDesc = in.readString();
category = in.readString();
vendor = in.readString();
venue = in.readString();
startDateTime = (Calendar) in.readValue(getClass().getClassLoader());
endDateTime = (Calendar) in.readValue(getClass().getClassLoader());
Bitmap bitmap= (Bitmap)in.readParcelable(getClass().getClassLoader());
eventImage = new BitmapDrawable(bitmap);
price = in.readDoubleArray();
lat = in.readDouble();
lng = in.readDouble();
}