2013-04-27 48 views
0

所以我的應用程序是這樣的。我有一個列表視圖,Categories。當用戶點擊某個類別時,會啓動一個新活動Products。出現一些他可以購買的產品。在他選擇他想要的內容後,他可以點擊訂單按鈕,進入Checkout活動。 眼下,以便將數據從發送到ProductsOrder,我有一個parcelable類,並使用它像這樣:在活動之間傳遞數據與可發佈

Intent orderActivity = new Intent(Main.this, Order.class); 
orderActivity.putExtra("parcel", listOrdered); 

事情是,也許用戶想從多個類別買東西。所以在他從第一類產品中選擇後,他會回到Categories活動(他選擇的產品需要保留),選擇另一個類別,並從那裏選擇產品。

我的問題是:我可以使用上面的方法來做到這一點嗎?或者我需要onAnctivityResult()和類似的東西?

+0

只是一點OT。爲什麼不使用數據庫來跟蹤選定的產品?它也會在應用程序關閉時持續存在。 – rciovati 2013-04-27 08:51:00

+0

永遠不要這麼想......我想用DB來記住以前的訂單...... – Teshte 2013-04-27 09:30:29

回答

1

你應該組織你的代碼如下:

在活動Categories,維持選擇產品的列表,它應該是parcelable或序列化的,這是比較容易。

當您致電產品時,請將startActivityForResult打電話並將其傳遞給選定的產品類別和產品清單。當用戶選擇新產品時,請致電setResult,以便Categories活動可通過覆蓋onActivityResult獲取所選產品的新列表。

還有其他選擇,更先進和更面向對象,但它們不像這種方法那麼標準,並且更先進一些。但是,如果您很好奇,可以查看注射框架(如RoboGuiceDagger),以便在顯示的所有活動中共享ProductManager實例。

+0

對於'ProductManager'解決方案來說+1,非常優雅。 – rciovati 2013-04-27 08:46:05

+0

嗨RCI,我同意,但提問者似乎開始了,所以作爲第一步,在處理更先進的技術之前掌握android框架的基礎將更加重要。 – Snicolas 2013-04-27 08:48:02

+1

是的,沒錯。而且,如果不使用任何DI框架,普通的單身人士也可以做到這一點。 – rciovati 2013-04-27 08:52:42