2013-03-27 59 views
0

我正在制作(我的第一个)android应用程序,并且我对使用db4o有点困惑。如何结合db4o和android意图

我有一个活动,我有一个listView,并让用户选择一个对象。然后,我将这个对象通过一系列意图传递给其他活动(填充其字段),然后返回到主要活动。但是问题是,当我传递一个对象(它是可序列化的)时,我出于意图的对象与我放入的对象不同(不同的ID,当我使用调试进行检查时)。 所有的字段都是相同的,但它不是'相同'的对象。

因此,当我尝试将更新的对象存储在db4o中时,它不会识别它,并存储一个double对象。

我已经想通了两种解决方法:

  • 亦通的“原始/未修改”对象,并用它来获得对db4o参考(通过QBE),然后更新该对象的字段与改变的对象的值进行比较。

  • 使用全局变量,所以我没有使用意图(传递对象)

但双方似乎真的对我不好?什么可能是一个真正的解决方案,而不是一个解决方法?

回答

0

您可以尝试使用单例存储您的对象以及其他类(?)需要设置的字段,以便每个人都可以访问。我不清楚你在这个解释中对意图的使用。

+0

示例使用场景: 我有一个活动中的对象列表。当我点击一个对象时,我将主要活动的意图发送到另一个可以编辑对象的活动。对象本身作为一个可序列化的附加元素与意图一起发送;当我完成编辑时,我将(现在编辑的)对象发回主活动,在那里我保存它。 在我的问题中,我说'使用全局变量'就是'单身'方法。但是在这种情况下做这件事似乎是错误的? – SeaTrue 2013-03-27 15:38:34

+0

如果你想通过你的意图,做一个持有信息并通过它的类。单例不像旧的全局变量,它是一个只能存在一次的类。如果这是一场哲学辩论,这是一个有效的方法。 – Dave 2013-03-27 15:56:27

+0

我已经实现了单例方法;它工作得很好!谢谢 – SeaTrue 2013-03-28 11:27:41