为什么宗地的属性之一是nan?

时间:2019-09-02 09:42:18

标签: android android-intent parcel

我有一个要发送给活动的对象,例如包裹,我使用包裹,成功发送了所有属性,除了一个-作为NAN到达的“经度”,我不知道为什么

这是我的课程:

const store = createStore(
  reducer,
  compose(
    applyMiddleware(
      thunk.withExtraArgument({ getFirebase, getFirestore }),
      logger
    ),
    reduxFirestore(firebase),
    reactReduxFirebase(firebase, {
      useFirestoreForProfile: true,
      userProfile: "users"
      attachAuthIsReady: true,
      firebaseStateName: "firebaseReducer"
    })
  )

这是我对writeToParcel的调用:

private String city;
private double longitude;
private double latitude;

public Place(String city, double longitude, double latitude) {
    this.city = city;
    this.longitude = longitude;
    this.latitude = latitude;
}

public Place() {
}

protected Place(Parcel in) {
    city = in.readString();
    longitude = in.readDouble();
latitude=in.readDouble();
}

public static final Creator<Place> CREATOR = new Creator<Place>() {
    @Override
    public Place createFromParcel(Parcel in) {
        return new Place(in);
    }

    @Override
    public Place[] newArray(int size) {
        return new Place[size];
    }
};

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

public void writeToParcel(Parcel parcel, int i) {
    parcel.writeString(city);
    parcel.writeDouble(latitude);
    parcel.writeDouble(longitude);
}

这是对getParcelableExtra的调用:

intent.putExtra("myPlace", myPlace);

1 个答案:

答案 0 :(得分:1)

似乎您在取消对Place对象的包裹时忘记了回读纬度值;构造函数应该像

protected Place(Parcel in) {
    city = in.readString();
    latitude = in.readDouble();
    longitude = in.readDouble();
}

现代IDE(如Android Studio)具有生成宗地方法实现的选项,这倾向于避免在对对象进行拆分/取消拆分时忘记字段。