Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Android > Передача ссылки на объект (не копии!) в Activity


Автор: Tiarwe 24.7.2013, 22:50
Здравствуйте! Есть 2 массива объектов (например книг) ArrayList<Books> books_a и books_b. Книги имплементируют Parcelable.
Есть 2 Activity. В первой отображаются списки книг, во второй - редактор выбранной книги.

Проблема следующего характера: я выбираю книгу, она пихается в intent, во второй activity достаю объект, изменяю его. Но, насколько я понял, Parcelable создает копию объекта, поэтому все изменения объекта не затронут оригинальной книги из списка.

Как передать в Activity ссылку на объект, чтобы при изменении параметров они происходили в оригинальном объекте, а не том,что создает Parcelable?

Автор: Felan 25.7.2013, 11:12
Активити в андроиде это тонкий-тонкий UI. Не надо в них ничего хранить. Я про твои массивы.

Сделай отдельный класс бизнеслогики, который будет либо в нследнике от аппликейшена храниться, либо в его статических полях будут хранитсья твои списки. А во вторую активити только индекс книги передавай.

Потом вытщишь нужный объект и все.

Ну это если упращенно... Просто списки в массивах не хранят обычно. Хорошо бы их в базу сохранять.

Автор: Tiarwe 25.7.2013, 14:04
Цитата(Felan @  25.7.2013,  11:12 Найти цитируемый пост)
Активити в андроиде это тонкий-тонкий UI. Не надо в них ничего хранить. Я про твои массивы.

Сделай отдельный класс бизнеслогики, который будет либо в нследнике от аппликейшена храниться, либо в его статических полях будут хранитсья твои списки. А во вторую активити только индекс книги передавай.

Потом вытщишь нужный объект и все.

Ну это если упращенно... Просто списки в массивах не хранят обычно. Хорошо бы их в базу сохранять. 


Сейчас у меня так и есть. Есть свой Application со списком книг (который заполняется из xml файла). Я передаю позицию и всё замечательно. Но вот понадобилось мне иметь не 1, а несколько списков... Передавать индекс уже не вариант. Пока на ум приходит лишь хранить глобальную ссылку на редактируемый объект всё в том же Application.

Ну и книги - это как пример, на самом деле объектов будет не больше 100. Смотрел в сторону баз, но всё же решил остановиться на xml для хранения.

Автор: Felan 26.7.2013, 10:18
Цитата(Tiarwe @  25.7.2013,  16:04 Найти цитируемый пост)
Сейчас у меня так и есть. Есть свой Application со списком книг (который заполняется из xml файла). Я передаю позицию и всё замечательно.

Ну тогда в чем проблема?

Цитата(Tiarwe @  25.7.2013,  16:04 Найти цитируемый пост)
Но вот понадобилось мне иметь не 1, а несколько списков...

Да хоть 100500. Какая разница? Принцип тот же.

Цитата(Tiarwe @  25.7.2013,  16:04 Найти цитируемый пост)
Смотрел в сторону баз, но всё же решил остановиться на xml для хранения. 

Зря.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)