有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android:如何实现可打包到我的对象?

我有一个ConstantData类,它保存着我的JSON索引,我需要在活动之间用额外的东西传递它们。但在此之前,我必须首先实现这个类的对象的Parcelable

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

我是个新手,现在完全不知所措。非常感谢。请随意修改我下面的代码

康斯坦达。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();
        }
    }

如果我的问题不够清楚,你可以查这个问题:How to send an object from one Android Activity to another using Intents?

他在那里写道myParcelableObject,我只是不知道如何制作可包裹的物体

编辑 项目。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;
 }

共 (1) 个答案

  1. # 1 楼答案

    您需要实现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();
    

    我认为projectsList的编写要起作用,Project类还需要实现Parcelable

    例如,参见this class