मैं अपने डेटा क्लास को पार्सेलबल को लागू करने के लिए चाहता हूं, इसलिए इसे क्रियाकलापों के बीच साझा किया जा सकता है, हालांकि इसे संदर्भ के संदर्भ की भी आवश्यकता है ताकि फ़ील्ड को SQLiteDatabase में सहेजा जा सके।संदर्भित पोर्टेबल योग्य वर्ग को कार्यान्वित करने के लिए संदर्भ
हालांकि यह पार्ससेल के बाद से एक समस्या है। निर्माता विधि बनाने FromParcel केवल एक पैरामीटर पार्सल है।
public abstract class Record implements Parcelable {
protected Context context;
protected String value;
public Record(Context context) {
this.context = context;
}
public Record(Parcel parcel) {
this.value = parcel.readString();
}
public void save() {
//save to SQLiteDatabase which requires Context
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int flag) {
parcel.writeString(value);
}
public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
public Record createFromParcel(Parcel parcel) {
return new Record(in);
}
public Record[] newArray(int size) {
return new Record[size];
}
};
}
पार्सेलबल लागू करने वाली कक्षा भी संदर्भ का संदर्भ कैसे दे सकती है ताकि यह SQLiteDatabase को सहेज सके?
शायद आप MyApp में गतिशील डेटा को सहेज/पढ़ सकते हैं (MyApp) getAplicationContext() का उपयोग कर एप्लिकेशन को बढ़ाता है। – JAL