2

を実装するクラスがありますParcelable。オブジェクトの を にList読み書きする最良の方法は何ですか?DateParcel

Dateこれは、単一のオブジェクトに対して行う方法です。

    date = new Date(parcel.readLong()); //read

    parcel.writeLong(date.getTime());   //write

しかし、それを行う方法はList<Date>

書き込みを行うハムフィストの方法は、次のように、すべてのDateオブジェクトをループして a を構築することだと思います。long[]

long[] datesAsLongs = new long[dates.size()];
for (int i = 0; i < dates.size(); i++)
    datesAsLongs[i] = dates.get(i).getTime();
parcel.writeLongArray(datesAsLongs);

そして読むために、あなたはすることができます:

dates = new ArrayList<Date>();
for (long dateAsLong : parcel.createLongArray())
    dates.add(new Date(dateAsLong));

でも、もっといいものがあると思っていたのに…

4

1 に答える 1

2

Date は Serializable オブジェクトであるため、次を使用できるはずですwriteList()

List<Date> list = new ArrayList<Date>();
parcel.writeList(list);

ArrayList は Serializable も実装しているため、次を使用できる場合がありますwriteValue()

List<Date> list = new ArrayList<Date>();
parcel.writeValue(list);    

使用できる最悪のケースwriteSerializable()

于 2012-12-29T17:41:51.080 に答える