Android: как реализовать Parcelable для моих объектов?
У меня есть этот класс ConstantData, который содержит мои индексы JSON, мне нужно передавать их между действиями с дополнительными функциями. Но перед этим я должен сначала реализовать 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();
}
}
В случае, если мой вопрос недостаточно ясен, вы можете посмотреть на этот вопрос: Как отправить объект из одной операции Android в другую, используя Intents?
Там он написал 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;
}
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
,
Смотрите, например, этот класс для примера.