Android:如何将Parcelable实现到我的对象?

hec*_*ana 16 java android

我有这个包含我的JSON索引的ConstantData类,我需要在带有额外内容的活动之间传递它们.但在此之前,我必须首先将Parcelable实现到此类的对象.

我的问题是,如何在我的类中声明对象并将每个对象放在变量中?

我是新手,我现在完全无能为力.谢谢.随意修改我的代码如下.

ConstantData.java

public class ConstantData{

       public static String project_title = "project title";
       public static String organization_title = "organization title";
       public static String keyword = "keyword";
       public static String short_code = "short code";
       public static String project_description = "description";
       public static String smallImageUrl = "smallImageUrl";
       public static String bigImageUrl = "bigImageUrl";
       public static String price= "price";
       public static String country= "country";



        public static ArrayList<Project> projectsList = new ArrayList<Project>();


        public int describeContents() {
            return 0;
        }

        public void writeToParcel(Parcel out, int flags) {
            out.writeString(project_title);
            out.writeString(organization_title);
            out.writeString(keyword);
            out.writeString(short_code);
            out.writeString(project_description);
            out.writeString(smallImageUrl);
            out.writeString(bigImageUrl);
            out.writeString(price);
            out.writeString(country);
        }

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

            public ConstantData[] newArray(int size) {
                return new ConstantData[size];
            }
        };

        private ConstantData(Parcel in) {
            project_title = in.readString();
            organization_title = in.readString();
            keyword = in.readString();
            short_code = in.readString();
            project_description = in.readString();
            smallImageUrl = in.readString();
            bigImageUrl = in.readString();
            price = in.readString();
            country = in.readString();
        }
    }
Run Code Online (Sandbox Code Playgroud)

如果我的问题不够明确,你可以查看这个问题:如何使用Intents将对象从一个Android Activity发送到另一个?

在那里他写道myParcelableObject,我只是不知道如何制作可分割的对象.

编辑 Project.java

public class Project {

    public String project_title;
    public String organization_title;
    public String keyword;
    public String short_code;
    public String project_description;
    public String smallImageUrl;
    public String bigImageUrl;
    public String price;
    public String country;
 }
Run Code Online (Sandbox Code Playgroud)

Hei*_*upp 17

您需要实现该Parcelable接口

public class ConstantData implements Parcelable {

    public void writeToParcel(Parcel out, int flags) {
        out.writeString(project_title);
    ....
        out.writeString(country);
        out.writeList(projectsList); // <<--
    }

    private ConstantData(Parcel in) {
        project_title = in.readString();
        ....
        country = in.readString();
        projectsList = in.readList();
Run Code Online (Sandbox Code Playgroud)

我认为对于写作projectsList工作,Project课程也需要实施Parcelable.

例如,参见这个类.