Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 没有关于包裹对象的数据发送到其他活动,其中包含其他包裹_Android_Parcelable - Fatal编程技术网

Android 没有关于包裹对象的数据发送到其他活动,其中包含其他包裹

Android 没有关于包裹对象的数据发送到其他活动,其中包含其他包裹,android,parcelable,Android,Parcelable,我正在做一个需要通过活动传递对象的应用程序,所以为了实现这一点,我制作了3个可包裹类 结构如下: >测验列表: >-int事件标识; >-字符串名称; >-字符串业务单元; >-国际功能区业务;//0未选中,1已选中 >-内部功能区域支持;//0未选中,1已选中 >-清单; > | > \ >->测验: >-int id; >-字符串标题; >-字符串描述; >-int扬声器识别码; >-字符串扬声器名称; >-列出答案; >

我正在做一个需要通过活动传递对象的应用程序,所以为了实现这一点,我制作了3个可包裹类

结构如下:

>测验列表:
>-int事件标识;
>-字符串名称;
>-字符串业务单元;
>-国际功能区业务;//0未选中,1已选中
>-内部功能区域支持;//0未选中,1已选中
>-清单;
>          |
>          \
>->测验:
>-int id;
>-字符串标题;
>-字符串描述;
>-int扬声器识别码;
>-字符串扬声器名称;
>-列出答案;
>                        |
>                        \
>->答复:
>-int-answer\u-id;
>-字符串标题;
>-整数顺序;
>-int型;
>-字符串值;
>-智力测验与家长;
正如你所看到的,列表测验有一些变量和一个测验列表(类),测验是一样的,一些变量和一个答案列表(另一类)

我不知道当我通过intents发送主对象“列表测验”时,发送的数据是包含测验和答案的列表测验的完整树,还是仅存储在第一个可包裹类列表测验中的数据,因为我没有从接收可包裹对象的活动中的答案中获取任何数据

我的包裹类别是:

列表测验

public class List_Quizs implements Parcelable {

    int event_id;
    String name;
    String business_unit;
    int functional_area_business;    // 0 unchecked, 1 checked
    int functional_area_support;    // 0 unchecked, 1 checked
    List<Quiz> list_quizs; // MyClass should implement Parcelable properly

    // ==================== Parcelable ====================
    public int describeContents() {
        return 0;
    }

    public void writeToParcel(Parcel out, int flags) {
        out.writeInt(event_id);
        out.writeString(name);
        out.writeString(business_unit);
        out.writeInt(functional_area_business);
        out.writeInt(functional_area_support);
        out.writeList(list_quizs);
    }

    public List_Quizs() {
    }

    private List_Quizs(Parcel in) {
        event_id = in.readInt();
        name = in.readString();
        business_unit = in.readString();
        functional_area_business = in.readInt();
        functional_area_support = in.readInt();
        list_quizs = new ArrayList<Quiz>();
        in.readList(list_quizs, List_Quizs.class.getClassLoader());
    }

    public static final Parcelable.Creator<List_Quizs> CREATOR = new Parcelable.Creator<List_Quizs>() {
        public List_Quizs createFromParcel(Parcel in) {
            return new List_Quizs(in);
        }
        public List_Quizs[] newArray(int size) {
            return new List_Quizs[size];
        }
    };

}
public class List\u Quizs实现可包裹{
int事件标识;
字符串名;
字符串业务单元;
int functional_area_business;//未选中0,选中1
int functional_area_support;//未选中0,选中1
List_quizs;//MyClass应该正确实现Parcelable
//===========================================可包裹====================
公共int描述内容(){
返回0;
}
公共无效写入包(包出,内部标志){
out.writeInt(事件标识);
out.writeString(名称);
外拨帐款(业务单位);
外写(职能领域业务);
out.writeInt(功能区支持);
out.writeList(列表);
}
公共列表_Quizs(){
}
私人物品清单(内包裹){
event_id=in.readInt();
name=in.readString();
业务单位=in.readString();
功能区业务=in.readInt();
功能区支持=in.readInt();
list_quizs=new ArrayList();
in.readList(list_quizs,list_quizs.class.getClassLoader());
}
public static final Parcelable.Creator=新建Parcelable.Creator(){
公共列表_Quizs createFromParcel(地块中){
返回新列表_quiz(in);
}
公共列表_Quizs[]新数组(整数大小){
返回新列表_Quizs[size];
}
};
}
测验

公共类测验实现可包裹{
int-id;
字符串标题;
字符串描述;
国际演讲者协会;
字符串扬声器名称;
列出你的答案;
@凌驾
公共int描述内容(){
返回0;
}
@凌驾
公共无效写入包裹(包裹目的地,内部标志){
目的地写入(id);
目的书面记录(标题);
目的地记录(说明);
目的地记录(发言人id);
目的书面记录(发言人姓名);
目的书面列表(列出答案);
}
公众问答游戏(包裹内){
id=in.readInt();
title=in.readString();
description=in.readString();
扬声器_id=in.readInt();
speaker_name=in.readString();
list_answers=new ArrayList();
in.readList(列出答案,quick.class.getClassLoader());
}
公开问答{
}
//盖特,塞特
...
//
public static final Parcelable.Creator=新建Parcelable.Creator(){
公共测验createFromParcel(包裹中){
返回新测验(in);
}
公共测验[]新数组(整数大小){
返回新测验[大小];
}
};
}
答复

public class Answer implements Parcelable {

    int answer_id;
    String title;
    int order;
    int type;
    String value;
    int quiz_parent;

    //GETTERS, SETTERS        

    public static final Parcelable.Creator<Answer> CREATOR = new Parcelable.Creator<Answer>() {
        public Answer createFromParcel(Parcel in) {
            return new Answer(in);
        }

        public Answer[] newArray(int size) {
            return new Answer[size];
        }
    };
    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeInt(answer_id);
        dest.writeString(title);
        dest.writeInt(order);
        dest.writeInt(type);
        dest.writeString(value);
        dest.writeInt(quiz_parent);
    }

    public Answer(Parcel in) {
        answer_id = in.readInt();
        title = in.readString();
        order = in.readInt();
        type = in.readInt();
        value = in.readString();
        quiz_parent = in.readInt();
    }

    public Answer() {
    }
}
公共类答案实现可包裹{
int答案识别码;
字符串标题;
整数阶;
int型;
字符串值;
智力测验与家长;
//能手,二传手
public static final Parcelable.Creator=新建Parcelable.Creator(){
公共应答createFromParcel(包裹中){
返回新答案(in);
}
公共应答[]新数组(整数大小){
返回新答案[大小];
}
};
@凌驾
公共int描述内容(){
返回0;
}
@凌驾
公共无效写入包裹(包裹目的地,内部标志){
目的地记录(应答id);
目的书面记录(标题);
目的书(订单);
目的写入(类型);
目的写入限制(值);
目的地记录(测验\家长);
}
公众答覆(包裹内){
答案_id=in.readInt();
title=in.readString();
顺序=in.readInt();
type=in.readInt();
value=in.readString();
quick_parent=in.readInt();
}
公众答覆({
}
}
你得到了什么

list_answers = new ArrayList<Answer>();
in.readList(list_answers , Quiz.class.getClassLoader());
list_answers=new ArrayList();
in.readList(列出答案,quick.class.getClassLoader());
在你的测验课上(坏拷贝粘贴?:p)。应该是

list_answers = new ArrayList<Answer>();
in.readList(list_answers , Answer.class.getClassLoader());
list_answers=new ArrayList();
in.readList(list_answers,Answer.class.getClassLoader());
list_answers = new ArrayList<Answer>();
in.readList(list_answers , Quiz.class.getClassLoader());
list_answers = new ArrayList<Answer>();
in.readList(list_answers , Answer.class.getClassLoader());