我使用类Tests作为基类,我创建了三个类,Test1,Test2,Test3,它们扩展了Tests类,然后我又增加了一个类,其中有一个Arraylist。
状态用于收集大量信息,包括包含我想要执行的测试的列表,因此我使用Arraylist和方法"添加"要将test1,test2或test3添加到列表中,然后我想将此State对象发送到活动B.我已经在类Test1,Test2,Test3和States上实现了parcelable接口但我得到了下一个例外:
在偏移300处解组未知类型代码6357090
请,可以建议任何方法来实现这一点,收集arraylist的测试很重要,我认为存在问题,谢谢。
答案 0 :(得分:-1)
很抱歉,这个评论太长了,所以我发布了一个答案
由于Test1扩展了测试,测试应该具有自己的Parcelable实现。
该实现由其所有“子”类使用super
调用。例如(这是我在我的应用程序中使用的):
测试课程
public class Tests implements Parcelable {
private int Id;
private String Name;
// parcelable
protected Tests(Parcel in) {
Id = in.readInt();
Name = in.readString();
}
public static final Creator<Tests> CREATOR = new Creator<Tests>() {
@Override
public Tests createFromParcel(Parcel in) {
return new Tests(in);
}
@Override
public Tests[] newArray(int size) {
return new Tests[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(Id);
dest.writeString(Name);
}
}
Test1类
public class Test1 extends Tests implements Parcelable {
private int Score;
// parcelable
protected Test1(Parcel in) {
super(in);
Score = in.readInt();
}
@Override
public void writeToParcel(Parcel dest, int flags) {
super.writeToParcel(dest, flags);
dest.writeInt(Score);
}
@Override
public int describeContents() {
return 0;
}
public static final Creator<Test1> CREATOR = new Creator<Test1>() {
@Override
public Test1 createFromParcel(Parcel in) {
return new Test1(in);
}
@Override
public Test1[] newArray(int size) {
return new Test1[size];
}
};
}