使用parcelable在活动之间传递数据

时间:2013-04-27 08:32:32

标签: android android-activity parcelable

所以我的应用就是这样的。我有一个列表视图,Categories。当用户点击某个类别时,系统会启动新活动Products。他可以购买的一些产品出现。在他选择了他想要的内容后,他可以点击订单按钮,转到Checkout活动。 现在,为了将数据从Products发送到Order,我有一个parcelable类,并像这样使用它:

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

事情是,用户可能想从多个类别购买东西。因此,在他从第1类产品中选择后,他回到Categories活动(他选择的产品需要保留),选择另一个类别,并从那里选择产品。

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

1 个答案:

答案 0 :(得分:1)

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

在活动Categories中,维护所选产品的列表,它应该是可分割的或可序列化的,这更容易。

致电产品时致电startActivityForResult,并将其与所选类别和所选产品列表一起传递。用户选择新产品后,请致电setResult,以便Categories活动可以通过覆盖onActivityResult来获取所选产品的新列表。

还有其他选项,更先进,更面向对象,但它们不像这种方法那样标准,而且更先进一些。但是,如果您感到好奇,可以查看注释框架,例如RoboGuiceDagger,以便在您显示的所有活动中获得共享ProductManager实例。