2013-03-27 1 views
0

Я делаю (мое первое) приложение для Android, и я немного озадачен использованием db4o.Как объединить db4o и андроидные намерения

У меня есть одно действие, в котором у меня есть listView, и пусть пользователь выбирает объект. Затем я передаю этот объект через ряд намерений для других действий (чтобы заполнить его поля), а затем вернуться к основному виду деятельности.

Но проблема в том, что когда я передаю объект (он сериализуем), объект, который я получаю из намерения, не совпадает с тем, который я вставлял. (Другой идентификатор, когда я проверяю с помощью отладки). Все поля являются одинаковыми, но это не «один и тот же» объект.

Итак, когда я пытаюсь сохранить обновленный объект в db4o, он не распознает его и сохраняет двойной.

Я понял, два обходные пути:

  • также передать «оригинал/неизмененной» объект и использовать его, чтобы получить ссылку db4o (через QBE), а затем обновляет поля этого объекта со значениями измененного объекта.

  • Использование глобальных переменных, так что я не должен использовать намерения (передать объект)

Но оба, кажется, очень плохо для меня? Что может быть реальным решением, а не обходным путем?

ответ

0

Вы можете попробовать использовать одноэлементный номер для хранения вашего объекта и полей, которые должны быть установлены другими классами (?), Чтобы каждый имел доступ. В этом объяснении я не понимаю вашего использования намерений.

+0

Пример использования сценария: У меня есть список объектов в одном действии. Когда я нажимаю на объект, я посылаю намерение от основной активности к другому действию, где я могу редактировать объект. Сам объект отправляется вместе с намерением как сериализуемый дополнительный; Когда я закончил редактирование, я отправляю объект (теперь отредактированный) обратно в основное действие, где я его сохраняю. Подход «singleton» - это то, что я имел в виду, когда я сказал «используя глобальные переменные» в своем вопросе. Но, похоже, это неправильно для такого рода ситуаций? – SeaTrue

+0

Если вы хотите передать свои намерения, создайте класс, который содержит информацию и передает это вместо этого. Синглтон не похож на старые глобальные переменные, это класс, который может существовать только один раз. Если это философская дискуссия, это действительный подход. – Dave

+0

Я реализовал одноэлементный подход; Он отлично работает! благодаря – SeaTrue

Смежные вопросы