Tôi muốn làm cho class A Parcelable.Làm thế nào để tạo một lớp học với các đối tượng lồng nhau Parcelable
public class A {
public String str;
public ArrayList<B> list;
}
Đây là những gì tôi đã đưa ra cho đến nay. Tuy nhiên nó bị treo với một NullPointerException. Vấn đề là hai câu sau: dest.writeList(list);
& in.readList(list, this.getClass().getClassLoader());
. tôi không thể tìm ra những việc cần làm từ đây :(
Class A
public class A implements Parcelable {
public String str;
public ArrayList<B> list;
@Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(str);
dest.writeList(list);
}
private A(Parcel in) {
str = in.readString();
in.readList(list, this.getClass().getClassLoader());
}
public static final Parcelable.Creator<A> CREATOR
= new Parcelable.Creator<A>() {
public A createFromParcel(Parcel in) {
return new A(in);
}
public A[] newArray(int size) {
return new A[size];
}
};
}
Class B
public class B implements Parcelable {
public String str;
@Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(str);
}
private B(Parcel in) {
str = in.readString();
}
public static final Parcelable.Creator<B> CREATOR
= new Parcelable.Creator<B>() {
public B createFromParcel(Parcel in) {
return new B(in);
}
public B[] newArray(int size) {
return new B[size];
}
};
}
Cảm ơn bạn đã dành thời gian.
bạn trả lời như chấp nhận !! –
Ah vâng, nó sẽ không cho phép tôi và sau đó tôi quên mất nó :) –
@ Snæbjørn Cảm ơn bạn đã chia sẻ giải pháp –