オブジェクトを Parcelable にしようとしています。区画からオブジェクトを作成するための次のコードと、区画に書き込むための関数があります。パーセルからオブジェクトを作成しようとすると、m_endTime の作成中にエラーが発生し、文字列をロングにキャストできないと表示されます。何が起こっているのかよくわかりません。
private RECTripFishery(Parcel in) {
m_tripId = (Integer) in.readValue(null);
m_fishery = (String) in.readValue(null);
m_targetSpecies = (String) in.readValue(null);
m_startTime = new Date((Long) in.readValue(null));
if (in.readValue(null) == null){
m_endTime = null;
} else {
m_endTime = new Date((Long) in.readValue(null));
}
m_startLatitude = (Double) in.readValue(null);
m_startLongitude = (Double) in.readValue(null);
m_endLatitude = (Double) in.readValue(null);
m_endLongitude = (Double) in.readValue(null);
}
@Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeValue(Integer.valueOf(m_tripId));
dest.writeValue(m_fishery);
dest.writeValue(m_targetSpecies);
dest.writeValue(Long.valueOf(m_startTime.getTime()));
if (m_endTime == null) {
dest.writeValue(null);
} else {
dest.writeValue(Long.valueOf(m_endTime.getTime()));
}
dest.writeValue(m_startLatitude);
dest.writeValue(m_startLongitude);
dest.writeValue(m_endLatitude);
dest.writeValue(m_endLongitude);
return;
}private RECTripFishery(Parcel in) {
m_tripId = (Integer) in.readValue(null);
m_fishery = (String) in.readValue(null);
m_targetSpecies = (String) in.readValue(null);
m_startTime = new Date((Long) in.readValue(null));
if (in.readValue(null) == null){
m_endTime = null;
} else {
m_endTime = new Date((Long) in.readValue(null));
}
m_startLatitude = (Double) in.readValue(null);
m_startLongitude = (Double) in.readValue(null);
m_endLatitude = (Double) in.readValue(null);
m_endLongitude = (Double) in.readValue(null);
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeValue(Integer.valueOf(m_tripId));
dest.writeValue(m_fishery);
dest.writeValue(m_targetSpecies);
dest.writeValue(Long.valueOf(m_startTime.getTime()));
if (m_endTime == null) {
dest.writeValue(null);
} else {
dest.writeValue(Long.valueOf(m_endTime.getTime()));
}
dest.writeValue(m_startLatitude);
dest.writeValue(m_startLongitude);
dest.writeValue(m_endLatitude);
dest.writeValue(m_endLongitude);
return;
}