假设我有一个RecyclerView
,里面装有Car对象。汽车具有很多变量,例如 ID ,尺寸,颜色,徽标等。每辆汽车都保存到数据库中。
现在,当我想打开有关特定汽车的DetailActivity
时,我应该传递whole object into the new activity还是只是一个 ID 并从{{1 }}?
哪种解决方案更相关,更快?
答案 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的数据。
因此,请根据情况选择方法。