2013-10-24 70 views
0

我注意到,您可以使用putFragment/getFragment在Android中使用包发送碎片引用。 所以这个问题。有没有相应的方法来发送一般对象或更具体的活动?使用包发送对象引用

是的,其实我是一个C程序员谁爱指针:)

+1

你是如何传递片段?我没有看到这些方法在Bundle中的任何地方声明:http://developer.android.com/reference/android/os/Bundle.html –

+0

你想通过传递捆绑中的活动来完成什么? – DroidT

+0

片段可以通过使用http://developer.android.com/reference/android/app/FragmentManager.html 我认为它非常有用,当它需要重新创建(旋转或其他原因)所需的fragement实例使用saveinstace保留/恢复状态。 – user2679998

回答

0

可以传递对象,如果他们实现Parcelable接口。请在此阅读:http://developer.android.com/reference/android/os/Parcelable.html

编辑:不幸的是,这不同于传递对象引用。

编辑#2:啊,很酷。不知道那个API。不幸的是,它不起作用,你看它在这里:FragmentManagerImpl#putFragment

所有这些都是在分组中存储mIndex变量作为putInt()传入的分组。

如果你再看看这里:Fragment.mIndex

你可以看到,Android的只是不断片段的内部列表,这是它是如何恢复的片段,而不是通过其引用。所以不幸的是,这根本不存储内存引用。恐怕你想做的事情是不可能的,你必须执行Parcelable才能达到类似的行为。

+0

不,不是什么即时通讯寻找。指出我需要一个参考,而不是该对象的副本。 – user2679998

+0

@ user2679998查看我的编辑#2。 –

+0

是的乐趣。我知道它不存储引用,但它的工作原理与此类似。重要的是,同一个实例被撤销,也就是说;不是副本。实现Parcable/Seriaizable会生成一个不是我正在寻找的副本。 – user2679998