0

我在一个 android 项目中工作,我想将一个对象列表从一次活动传递到另一个活动。在对象中也有日期字段。我已经使用 Parcelable 实现了我的类,以便从一个活动中传递我的对象列表,并且我不会不解析我的日期字段。所以请给我一个解决方案。

这是我想通过的课程

public class Consumer {

    public int BusClientLogID;
    public int ClientID;
    public String ClientName;
    public int ClientStatus;
    public int Client_GroupStatus;
    public String EmployeeName;
    public String ServiceCompletedCount;
    public Date SignInTime;
    public Date TimeArrive;
    public Date TimeDepart;
    public Date SignOutTime;
}
4

2 回答 2

7

Alternatively you can use long and then convert it to Date and back. Here is an example showing how you can do it for SignInTime field.

public class Consumer implements Parcelable {

    public long SignInTime;

    public Consumer(Parcel in) {
        SignInTime = in.readLong();
    }

    public Date getSignInTime() {
        return new Date(SignInTime);
    }

    public void setSignInTime(Date date) {
        SignInTime = date.getTime();
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeLong(SignInTime);
    }

    @Override
    public int describeContents() {
        return 0;
    }

}
于 2013-08-23T05:51:05.060 回答
0

由于 Date 是一个可序列化的对象,您应该能够使用 writeList():

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

ArrayList 还实现了 Serializable,因此您可以使用 writeValue():

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

最坏的情况你可以使用 writeSerializable()

于 2013-08-23T05:53:51.270 回答