首先我檢查this answer。如何擴展實現Parcelable接口的android類?
我想要做的是擴展Location
類叫做LocationPlus
,它有一些 成員變量。我試圖實現的功能是將LocationPlus
類的對象從一個活動傳遞到另一個活動。
這裏試着寫構造
public LocationPlus(Parcel in) {
有人在評論問我後LocationPlus上課的時候是我CREATOR
public static final Parcelable.Creator<LocationPlus> CREATOR = new Parcelable.Creator<LocationPlus>() {
@Override
public LocationPlus createFromParcel(Parcel source) {
return new LocationPlus(source);
}
@Override
public LocationPlus[] newArray(int size) {
return new LocationPlus[size];
}
};
問題我面臨的是此錯誤
Implicit super constructor Location() is undefined. Must explicitly invoke another constructor
所以這裏是
public class LocationPlus extends Location{
private int mBattery = -1;
public LocationPlus(String locationName) {
super(locationName);
}
public LocationPlus(Location location) {
super(location);
}
public int getmBattery() {
return mBattery;
}
public void setmBattery(int mBattery) {
this.mBattery = mBattery;
}
@Override
public int describeContents() {
return 0;
}
public static final Parcelable.Creator<LocationPlus> CREATOR = new Parcelable.Creator<LocationPlus>() {
@Override
public LocationPlus createFromParcel(Parcel source) {
return new LocationPlus(source);
}
@Override
public LocationPlus[] newArray(int size) {
return new LocationPlus[size];
}
};
@Override
public void writeToParcel(Parcel out, int flags) {
super.writeToParcel(out, flags);
out.writeInt(mBattery);
}
public LocationPlus(Parcel in) {
mBattery =in.readInt();
}
}
安置自己的LocationPlus類 –
@Hasslarn代碼公佈。 – Akram
只是爲了好奇,如果你在LocationPlus中放置一個空的構造函數(嘗試空和超級調用),它會說什麼:public LocationPlus(){super()}。我沒有這臺機器上的Java,所以不幸我不能嘗試它。位置構造函數可能受到保護。 –