あるアクティビティから別のアクティビティに渡す必要がある顧客オブジェクト クラスがあります。これを行うためにparcelableを使用していますが、いくつかの問題が発生しました
1)Double Array variable# (現在の主な問題)
できる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();
}