【发布时间】:2011-08-16 19:44:02
【问题描述】:
我有一个包含我的 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();
}
}
如果我的问题不够清楚,你可以查这个问题:How to send an object from one Android Activity to another using Intents?
他在那里写了myParcelableObject,我只是不知道如何制作parcelable对象。
编辑 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;
}
【问题讨论】:
-
谢谢!所以在我的情况下,我只需要'公共抽象类A实现Parcelable'对吗?我不需要“公共类 B 扩展 A”,对吗?
-
没有提到的一件事是,如果您已经将数据作为 JSON/XML 对象,并且如果您已经编写了解析器,那么有时只传递 JSON 或 XML 对象会更容易(如果不是)通过超过 1-2 次span>
-
单独的评论/想法:另外,其中一些对象变得很重。为自己编写一个代码生成器以使对象可打包我觉得从长远来看可以节省大量时间