2013-10-24 29 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