【问题标题】:Is passing an object from activity to fragment a reference or value?是否将对象从活动传递到片段引用或值?
【发布时间】:2014-08-04 07:48:59
【问题描述】:

我将对象从活动传递到片段,如此处接受的答案中所述: Passing an Object from an Activity to a Fragment

但是,我的问题是,当一个对象被传递给片段时,它是对该对象的引用吗?还是对象的副本?

谢谢。

【问题讨论】:

  • 使用该方法,序列化然后反序列化,您将获得对象的副本。
  • 那我怎样才能传递引用呢?
  • 一种方法是使用单例来引用它。您也可以继承 Application 并向其添加公共字段,但 Android 的工程师强烈反对这样做。我在应用程序中使用了第二种方法没有问题。应用程序在应用程序的整个生命周期内都处于活动状态,因此应用程序子类中的公共非静态字段的作用与静态字段几乎相同。

标签: android android-fragments android-activity argument-passing


【解决方案1】:

Intent 的 extras 仅包含值。所以它是你的对象的副本,而不是它引用。

【讨论】:

  • 但是根据这里的答案:stackoverflow.com/questions/40480/… 我们确实通过了参考!我真的很困惑
  • 这个问题与 Intent extras 没有任何共同之处。当您将数据传递给 Activity 时,您将使用 Intent 和 extras(其中 extras 不能传递引用,但只能传递您提到的值)。在这里,他将通过 Fragment 参数传递一个对象
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多