将一个或多个对象ID传递到新活动

时间:2019-06-20 13:18:17

标签: android design-patterns architecture

如果我在一项活动中列出了某些项目(比如水果)。在这里,项目是从ROOM数据库中完全加载的。 单击Fruit会将您带到FruitDetailPage。当然,我必须使用FruitIntent传递给新活动。

但是最好做些什么?

  • 传递完整的水果对象
  • 传递fruit_id并在新活动中从数据库中重新加载水果对象

2 个答案:

答案 0 :(得分:1)

传递对象会更好,因为捆绑包有大小限制,因此,随着对象字段的增加,您可能会捕获错误。您还需要保留更少的内存空间。最重要的是,您不必编写额外的代码即可从Parcelabe继承对象。

答案 1 :(得分:0)

在您的列表活动中:

int fruitId = 5;
Intent i = new Intent(this/*activity*/, FruitDetailPage.class);
i.putExtra("fruit_id", fruitId);
startActivity(i);

在您的FruitDetailPage活动中:

void onCreate(Bundle bundle) {
  super.onCreate(bundle);
  int fruitId = getIntent().getIntExtra("fruit_id", -1);
}