0

所以我的应用程序是这样的。我有一个列表视图,Categories. 当用户单击一个类别时,Products就会启动一个新活动。一些他能买到的产品出现了。在他选择了他想要的东西后,他可以单击“订购”按钮,进入Checkout活动。现在,为了从 to 发送数据ProductsOrder我有一个parcelable类,并像这样使用它:

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

问题是,也许用户想从多个类别中购买东西。所以他从类别1的产品中选择后,他回到Categories活动(他选择的产品需要保留),选择另一个类别,并从那里选择产品。

我的问题是:我可以使用上面的方法来做到这一点吗?还是我需要onAnctivityResult()类似的东西?

4

1 回答 1

1

您应该按如下方式组织代码:

在activityCategories中,维护一个选中产品的列表,应该是parcelable或者serializable,这样比较容易。

在调用startActivityForResultProducts 时调用,并将所选类别和所选产品列表都传递给它。当用户完成新产品的选择后,调用setResultActivityCategories可以通过覆盖来获取所选产品的新列表onActivityResult

还有其他选项,更高级和更面向对象,但它们不像这种方法那样标准,而且更高级一些。但如果你好奇,你可以看看像RoboGuiceDagger这样的注入框架,以便在你显示的所有活动中获取一个共享ProductManager实例。

于 2013-04-27T08:43:55.980 回答