Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.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 Parcelable写入类对象_Android - Fatal编程技术网

android Parcelable写入类对象

android Parcelable写入类对象,android,Android,在我的一个项目类中,我使用的是Parcelable,我试图读取和写入类对象,我找不到任何解决方案,例如: public static class ListsBean implements Parcelable { private UserDailyListBean UserDailyList; private List<FoodsBean> foods; private ListsBean(Parcel in) { in.readList

在我的一个项目类中,我使用的是
Parcelable
,我试图读取和写入类对象,我找不到任何解决方案,例如:

public static class ListsBean implements Parcelable {
    private UserDailyListBean UserDailyList;
    private List<FoodsBean>   foods;

    private ListsBean(Parcel in) {
        in.readList(new ArrayList<FoodsBean>(), null);
    }

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeList(foods);
    }

    public static class UserDailyListBean {
        private String id;
        private String diet_visit_id;
    }

    public static class FoodsBean {
        private String id;
        private String meal;
        private String food;
        ...
    }
}
公共静态类ListsBean实现了Parcelable{
私有UserDailyListBean UserDailyList;
私人清单食品;
私人ListsBean(包裹中){
in.readList(新的ArrayList(),null);
}
@凌驾
公共int描述内容(){
返回0;
}
@凌驾
公共无效写入包裹(包裹目的地,内部标志){
目的地记录员(食品);
}
公共静态类UserDailyListBean{
私有字符串id;
私人字符串diet\u visit\u id;
}
公共静态类FoodsBean{
私有字符串id;
私人串餐;
私人串食;
...
}
}

在这个类中,我有一个字段,比如
userdailyllistbean
,它的not
List
类似于
FoodsBean
,如何读写它呢?

你可以让userdailyllistbean实现Parcelable并做类似的事情

public class ListsBean implements Parcelable {
    private UserDailyListBean UserDailyList;
    private List<FoodsBean> foods;

    public ListsBean() {}

    public static class UserDailyListBean implements Parcelable {
        private String id;
        private String diet_visit_id;

        public UserDailyListBean() {}
        @Override
        public int describeContents() {
            return 0;
        }

        @Override
        public void writeToParcel(Parcel dest, int flags) {
            dest.writeString(this.id);
            dest.writeString(this.diet_visit_id);
        }



        protected UserDailyListBean(Parcel in) {
            this.id = in.readString();
            this.diet_visit_id = in.readString();
        }

        public static final Creator<UserDailyListBean> CREATOR = new Creator<UserDailyListBean>() {
            @Override
            public UserDailyListBean createFromParcel(Parcel source) {
                return new UserDailyListBean(source);
            }

            @Override
            public UserDailyListBean[] newArray(int size) {
                return new UserDailyListBean[size];
            }
        };
    }

    public static class FoodsBean {
        private String id;
        private String meal;
        private String food;

    }

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeParcelable(this.UserDailyList, flags);
        dest.writeList(this.foods);
    }

    protected ListsBean(Parcel in) {
        this.UserDailyList = in.readParcelable(UserDailyListBean.class.getClassLoader());
        this.foods = new ArrayList<FoodsBean>();
        in.readList(this.foods, FoodsBean.class.getClassLoader());
    }

    public static final Creator<ListsBean> CREATOR = new Creator<ListsBean>() {
        @Override
        public ListsBean createFromParcel(Parcel source) {
            return new ListsBean(source);
        }

        @Override
        public ListsBean[] newArray(int size) {
            return new ListsBean[size];
        }
    };
}
公共类ListsBean实现了可包裹{
私有UserDailyListBean UserDailyList;
私人清单食品;
公共列表bean(){}
公共静态类UserDailyListBean实现Parcelable{
私有字符串id;
私人字符串diet\u visit\u id;
公共用户DailyListBean(){}
@凌驾
公共int描述内容(){
返回0;
}
@凌驾
公共无效写入包裹(包裹目的地,内部标志){
dest.writeString(此.id);
目的地记录(本次节食就诊id);
}
受保护的UserDailyListBean(包中){
this.id=in.readString();
this.diet_visit_id=in.readString();
}
公共静态最终创建者=新创建者(){
@凌驾
公共用户DailyListBean createFromParcel(地块源){
返回新的UserDailyListBean(源);
}
@凌驾
public UserDailyListBean[]newArray(整数大小){
返回新的UserDailyListBean[size];
}
};
}
公共静态类FoodsBean{
私有字符串id;
私人串餐;
私人串食;
}
@凌驾
公共int描述内容(){
返回0;
}
@凌驾
公共无效写入包裹(包裹目的地,内部标志){
dest.writeParcelable(this.UserDailyList,标志);
目的书面列表(本文件为食品);
}
受保护的ListsBean(包裹中){
this.UserDailyList=in.readParcelable(UserDailyListBean.class.getClassLoader());
this.foods=new ArrayList();
in.readList(this.foods,FoodsBean.class.getClassLoader());
}
公共静态最终创建者=新创建者(){
@凌驾
公共列表Bean createFromParcel(地块源){
返回新的ListsBean(源);
}
@凌驾
public ListsBean[]newArray(整数大小){
返回新的ListsBean[size];
}
};
}

您可以使UserDailyListBean实现可打包,并执行如下操作

public class ListsBean implements Parcelable {
    private UserDailyListBean UserDailyList;
    private List<FoodsBean> foods;

    public ListsBean() {}

    public static class UserDailyListBean implements Parcelable {
        private String id;
        private String diet_visit_id;

        public UserDailyListBean() {}
        @Override
        public int describeContents() {
            return 0;
        }

        @Override
        public void writeToParcel(Parcel dest, int flags) {
            dest.writeString(this.id);
            dest.writeString(this.diet_visit_id);
        }



        protected UserDailyListBean(Parcel in) {
            this.id = in.readString();
            this.diet_visit_id = in.readString();
        }

        public static final Creator<UserDailyListBean> CREATOR = new Creator<UserDailyListBean>() {
            @Override
            public UserDailyListBean createFromParcel(Parcel source) {
                return new UserDailyListBean(source);
            }

            @Override
            public UserDailyListBean[] newArray(int size) {
                return new UserDailyListBean[size];
            }
        };
    }

    public static class FoodsBean {
        private String id;
        private String meal;
        private String food;

    }

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeParcelable(this.UserDailyList, flags);
        dest.writeList(this.foods);
    }

    protected ListsBean(Parcel in) {
        this.UserDailyList = in.readParcelable(UserDailyListBean.class.getClassLoader());
        this.foods = new ArrayList<FoodsBean>();
        in.readList(this.foods, FoodsBean.class.getClassLoader());
    }

    public static final Creator<ListsBean> CREATOR = new Creator<ListsBean>() {
        @Override
        public ListsBean createFromParcel(Parcel source) {
            return new ListsBean(source);
        }

        @Override
        public ListsBean[] newArray(int size) {
            return new ListsBean[size];
        }
    };
}
公共类ListsBean实现了可包裹{
私有UserDailyListBean UserDailyList;
私人清单食品;
公共列表bean(){}
公共静态类UserDailyListBean实现Parcelable{
私有字符串id;
私人字符串diet\u visit\u id;
公共用户DailyListBean(){}
@凌驾
公共int描述内容(){
返回0;
}
@凌驾
公共无效写入包裹(包裹目的地,内部标志){
dest.writeString(此.id);
目的地记录(本次节食就诊id);
}
受保护的UserDailyListBean(包中){
this.id=in.readString();
this.diet_visit_id=in.readString();
}
公共静态最终创建者=新创建者(){
@凌驾
公共用户DailyListBean createFromParcel(地块源){
返回新的UserDailyListBean(源);
}
@凌驾
public UserDailyListBean[]newArray(整数大小){
返回新的UserDailyListBean[size];
}
};
}
公共静态类FoodsBean{
私有字符串id;
私人串餐;
私人串食;
}
@凌驾
公共int描述内容(){
返回0;
}
@凌驾
公共无效写入包裹(包裹目的地,内部标志){
dest.writeParcelable(this.UserDailyList,标志);
目的书面列表(本文件为食品);
}
受保护的ListsBean(包裹中){
this.UserDailyList=in.readParcelable(UserDailyListBean.class.getClassLoader());
this.foods=new ArrayList();
in.readList(this.foods,FoodsBean.class.getClassLoader());
}
公共静态最终创建者=新创建者(){
@凌驾
公共列表Bean createFromParcel(地块源){
返回新的ListsBean(源);
}
@凌驾
public ListsBean[]newArray(整数大小){
返回新的ListsBean[size];
}
};
}

搜索一些教程网站后我的问题由解决

搜索一些教程网站后我的问题由解决

使用Android Studio插件。在对象类类型变量为的对象中使用可分区时,必须实现可分区。 这个插件对我来说非常有用和简单

使用Android Studio插件。在对象类类型变量为的对象中使用可分区时,必须实现可分区。 这个插件对我来说非常有用和简单