Trước hết tôi có kiểm tra this answer.Làm cách nào để mở rộng lớp học android thực hiện giao diện Parcelable?
Điều tôi đang cố gắng thực hiện là mở rộng Location
lớp gọi số LocationPlus
trong đó có một số biến số thành viên. chức năng tôi đang cố gắng đạt được là vượt qua đối tượng của lớp LocationPlus
từ hoạt động này sang hoạt động khác.
Đây là 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];
}
};
vấn đề của tôi tôi đang phải đối mặt là lỗi này
Implicit super constructor Location() is undefined. Must explicitly invoke another constructor
khi cố gắng viết constructor
public LocationPlus(Parcel in) {
Someone in comment yêu cầu tôi gửi lớp LocationPlus ở đây là
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();
}
}
bài LocationPlus lớp –
đang @Hasslarn của bạn được đăng. – Akram
Chỉ để được tò mò, nó nói gì nếu bạn đặt một constructor rỗng trong LocationPlus (thử cả hai trống rỗng và với super call): public LocationPlus() {super()}. Tôi không có Java trên máy này vì vậy tiếc là tôi không thể thử nó. Trình tạo vị trí có thể được bảo vệ. –