【问题标题】:Pass object or objects id to new activity将对象或对象 ID 传递给新活动
【发布时间】:2019-06-20 13:18:17
【问题描述】:

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

但是什么会更好呢?

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

【问题讨论】:

    标签: android design-patterns architecture


    【解决方案1】:

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

    【讨论】:

    • 您的意思可能是传递对象 id 而不是对象,对吧?
    【解决方案2】:

    在您的列表活动中:

    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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-30
      • 1970-01-01
      • 2019-07-01
      • 1970-01-01
      相关资源
      最近更新 更多