我正在一个Android项目中工作,我想将一个对象列表从一次活动传递到另一个活动。在对象中也有Date字段..我已经使用Parcelable实现了我的类来从一个活动传递我的List of Object而我不是要解析我的Date字段。所以请建议我一个解决方案。
这是我要传递的课程
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;
}
答案 0 :(得分:7)
或者,您可以使用long
,然后将其转换为Date
并返回。下面是一个示例,说明如何为SignInTime字段执行此操作。
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;
}
}
答案 1 :(得分:0)
由于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()