Подтвердить что ты не робот

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 в другой с помощью намерений?

Там он написал 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;
 }
4b9b3361

Ответ 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.

См. этот класс для примера.