2013-03-27 62 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