Как пройти ArrayListк другой деятельности? - PullRequest
2 голосов
/ 10 августа 2011

Этот вопрос состоит из 2 частей

Я пытаюсь передать ArrayList от одного Activity к другому. Arraylist содержит некоторые объекты, созданные из созданного мной класса (содержат несколько строк и Drawable).

Я нашел в Интернете, что мне нужно сделать свой класс Parcelable, что было проблемой, особенно с Drawable. (Это первая часть)

Как только мой класс реализует Parcelable, как я смогу отправить / получить мой Arraylist.

Ответы [ 3 ]

1 голос
/ 10 августа 2011

Вы можете сделать свой ArrayList общедоступным статическим и получать к нему доступ в любом месте, называя его Activity_name.array_list_name.

Где Activity_name - это имя класса, в котором вы будете определять ArrayList.

0 голосов
/ 10 августа 2011

Я настоятельно рекомендую вам пересмотреть свою архитектуру.Вы не должны передавать объекты рисования через границы действий по нескольким причинам, включая утечку контекста, утечку растрового изображения и потенциальное нарушение предельного размера для вызовов IPC.

Если вам действительно нужно такое поведение, правильным подходом будетсохраните данные, которые можно рисовать, в базе данных / SharedPreference, а также свои растровые изображения в файлы, а затем, когда начинается второе действие, вы можете воссоздать эти чертежи, извлекая данные и изображения.нужен доступ к тому же списку рисовалок?Я подозреваю, что некоторая реструктуризация могла бы полностью избежать этой проблемы.

0 голосов
/ 10 августа 2011

Передача объекта невозможна без его расширения Parcelable .. Так что я предлагаю создать класс с именем store() или что-то еще и сделать его singleTon. который имеет приватное поле типа ArrayList(). и создавать геттеры и сеттеры для одной и той же переменной, и где бы вы ни создавали объект, просто скажите store().getInstance().setObject(yourObject);

и при получении

store().getInstance().getObject();
...