我正在创建一个实现Parcelable的类。
public class PosicaoResumoMobile implements Parcelable {
private Float _Latitude;
private Float _Longitude;
private org.joda.time.DateTime _DataHora;
...
但是这个类的属性是org.joda.time.DateTime。 如何在实现Parcelable的以下方法中编写此属性,因为它不可能是out.writeDateTime(_DataHora)。
@Override
public void writeToParcel(Parcel out, int flags)
{
//TODO: How to write org.joda.time.DateTime
out.writeFloat(_Latitude);
out.writeFloat(_Longitude);
}
并阅读
private PosicaoResumoMobile(Parcel in){
//TODO: How to read org.joda.time.DateTime
Float latitude = in.readFloat();
Float longitude = in.readFloat();
}
答案 0 :(得分:7)
您应该可以使用getMillis()
// to write to parcel
out.writeFloat(_Latitude);
out.writeLong(jodaDTInstance.getMillis())
// to read from parcel
Float longitude = in.readFloat();
jodaDTInstance = new DateTime(in.readLong());
答案 1 :(得分:2)
基于@artworkad注释,如果需要包含时区信息,则必须使用toString()和DateTime.parse():
写入包裹:
dest.writeString(mDateTime.toString());
从包裹中读取:
mDateTime = DateTime.parse(in.readString());
答案 2 :(得分:0)
将此代码设为kotlin:
写:
using
阅读:
out.writeSerializable(myDateObject)