Модераторы: javastic
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передача ссылки на объект (не копии!) в Activity 
:(
    Опции темы
Tiarwe
Дата 24.7.2013, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 24.8.2011

Репутация: нет
Всего: нет



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

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

Как передать в Activity ссылку на объект, чтобы при изменении параметров они происходили в оригинальном объекте, а не том,что создает Parcelable?
PM MAIL   Вверх
Felan
Дата 25.7.2013, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 284
Регистрация: 2.8.2007
Где: Самара

Репутация: нет
Всего: 7



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

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

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

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


--------------------
// Любая сложная система - это темный лес. Каждый в этом лесу протаптывает свои тропинки, по ним и бегает. Лишь изредка, сходя с них, мы находим много интересного, а порою и страшного.
PM MAIL WWW ICQ   Вверх
Tiarwe
Дата 25.7.2013, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 24.8.2011

Репутация: нет
Всего: нет



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

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

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

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


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

Ну и книги - это как пример, на самом деле объектов будет не больше 100. Смотрел в сторону баз, но всё же решил остановиться на xml для хранения.
PM MAIL   Вверх
Felan
Дата 26.7.2013, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 284
Регистрация: 2.8.2007
Где: Самара

Репутация: нет
Всего: 7



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

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

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

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

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

Зря.




--------------------
// Любая сложная система - это темный лес. Каждый в этом лесу протаптывает свои тропинки, по ним и бегает. Лишь изредка, сходя с них, мы находим много интересного, а порою и страшного.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Android | Следующая тема »


 




[ Время генерации скрипта: 0.0377 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.