将对象传递给另一个活动的方法

时间:2018-08-06 10:48:29

标签: android android-intent android-activity

假设我有一个RecyclerView,里面装有Car对象。汽车具有很多变量,例如 ID ,尺寸,颜色,徽标等。每辆汽车都保存到数据库中。

现在,当我想打开有关特定汽车的DetailActivity时,我应该传递whole object into the new activity还是只是一个 ID 并从{{1 }}?

哪种解决方案更相关,更快?

3 个答案:

答案 0 :(得分:2)

如果您需要传递一个或两个属性,则可以。如果它大于两个,则最好使用id并从数据库中查询它。

答案 1 :(得分:1)

首先,您应该使对象实现Parcelable

一旦您的对象实现了Parcelable,就可以将其附加到Intent上,如下所示:

Intent intent = new Intent();
intent.putExtra("extra_object_1", your_parcelable_object);

准备拉动对象时,请使用intent.getParcelableExtra()

Intent intent  = Context.getIntent();
MyParcelable obj = (MyParcelable) intent.getParcelableExtra("extra_object_1");

答案 2 :(得分:0)

如果对象大小较小,则应使用Parcelable通过意图传递数据。如果数据量很大,则将id传递给您的活动,然后从数据库中获取数据。

基于此Answer,您可以在Intent中传递1 MB的数据。

因此,请根据情况选择方法。