2011-02-09 121 views
2

我一直在閱讀Parcelables,越讀越多,我越來越困惑。如何使用Parcelable和onClickListeners?

我試圖以如下

  1. 掛鉤到外部API來獲取JSON數據(目前的工作)。
  2. 我解析的JSON對象很好,我把它放在一個HashMap的字符串。我用一個ListView顯示其是可滾動的數據(當前工作)
  3. 我設置的onClickListener它建立了一個新的意圖(目前工作)
  4. 這裏就是我越來越困惑 - 我的目標是允許用戶點擊列表視圖中的一個項目,這些項目將帶他們到一個新的屏幕,更多關於他們點擊的項目的詳細信息。

問題指向數4:

  1. 我用一個Parcelable類JSON對象傳遞到意圖是什麼?對我來說這是最好的選擇嗎?
  2. 如果Parcelable是正確的選擇,我會創建一個新的類來實現傳遞JSON對象的Parcelables?我想我真的不知道如何繼續。我所見過的所有例子都只有幾個字符串,它們傳遞給writeToParcel()方法。不知道如何轉換爲具有多個屬性的對象。

謝謝您花時間閱讀。

回答

1

有很多方法可以將數據傳遞給下一個活動,哪種方式最適合您取決於數據的複雜程度。一些選項:

Parcelable只是傳遞複雜對象的有效方法。如果你走這條路線,那麼你會創建一個實現Parcelable的新對象。根據需要,您的寫入方法可能會很複雜。如果您有一個複雜的對象樹,只需使每個對象都實現Parcelable並按照該對象的writeToParsel方法寫出對象樹的該部分。

一個更簡單但效率較低的方法是讓所有對象都實現Serializable。在那裏序列化和反序列化是爲你完成的,但它明顯比Parcelable實現慢。

如果您的活動只需要幾位原始信息,您也可以將它們各自作爲自己的額外信息。

最後,您可以使用Application類擴展或其他單例來存儲複雜的數據結構,只需傳遞所需的一點點信息以查找其餘數據。這樣可以減少需要傳遞的數據量,並且可以幫助您解決活動正在啓動和停止的問題。