gpt4 book ai didi

java - Parcelable : Double Array , 日历和位图

转载 作者:行者123 更新时间:2023-11-30 06:29:52 25 4
gpt4 key购买 nike

我有一个客户对象类,我需要将其从一个 Activity 传递到另一个 Activity 。我正在使用 parcelable 来帮助我做到这一点,但我遇到了一些问题

1)双数组变量#(现在的主要问题)

我可以writeDoubleArray 但我不能readDoubleArray

in.readDoubleArray(); 带有红色下划线并表示:

"The method readDoubleArray(double[]) in the type Parcel is not applicable for the arguments ()"

2) 日历变量

我不知道用什么函数来写日历所以我只是尝试了writeValue我没有测试它是否正常工作。我需要这方面的建议

3) 绘图变量

我的对象中有一个 drawable 属性,我搜索了一个解决方案并使用了它,但当前的那个说它已经过时了。所以我也不确定它是否会起作用。我也需要这方面的建议

我希望你能帮助我。谢谢!


我的代码:


          //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();
}

最佳答案

您正在尝试使用需要参数的方法读取 double 组。使用 readDoubleArray(double[]) 时,您需要先创建数组(足够长),然后再调用将数组作为参数传入的方法。

如果您不想自己创建数组,请使用 in.createDoubleArray() 而不是 in.readDoubleArray(double[])

对于 Calendar 对象,您可以使用 Parcel.writeSerializable(Serializable) 方法,因为 Calendar 类实现了 Serializable 接口(interface)。

关于java - Parcelable : Double Array , 日历和位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11049076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com