2010-11-15 38 views
7

我已經閱讀過關於傳遞數組的數據,但是我很困惑我會如何爲我的具體情況做這件事。如何將對象數組傳遞給Activity?

我有一個名爲DaysWeather(DaysWeather []數組)的對象數組,其中的對象有幾個String屬性以及一個位圖屬性。我讀了一些地方,你必須使它可序列化或parceable或東西,但它乍看起來似乎凌亂。

有人能帶我走向正確的方向嗎?

有沒有簡單的方法來做到這一點?

回答

5

您的對象需要實現Parcelable interface

當做到這一點,你可以創建Parcelable數組並把它傳遞給活動:

// We assume we have an array: DaysWeather[] input; 
Parcelable[] output = new Parcelable[input.length]; 
for (int i=input.length-1; i>=0; --i) { 
    output[i] = input[i]; 
} 

Intent i = new Intent(...); 
i.putExtra("myArray", output); 

還要注意的是,當你實現Parcelable接口,不完整的序列重物。例如,對於您的位圖,僅對資源ID進行序列化,並在充氣時重新創建來自資源ID的位圖。

+0

但是不要這樣做。使用其他方法傳輸對象,如服務。 – Falmarri 2010-11-15 15:56:59

+0

在活動之間傳遞對象的另一種方式是使用內容提供者,廣播接收者和意圖過濾器。 (http://thinkandroid.wordpress.com/2010/02/02/custom-intents-and-broadcasting-with-receivers/) – 2010-11-15 16:33:55

+1

當你說「不要序列化完整的重物時,我不知道你的意思。 「我的位圖沒有資源ID,因爲它們是從Web直接下載到各自的容器對象中的。另外,你能指導我一個合適的教程/實施Parcelable的例子嗎?我的對象(DaysWeather)只是包含5個字符串和一個位圖的數據結構。我不確定如何用這些數據實現writeToParcel()方法。 – joepetrakovich 2010-11-15 18:25:37

相關問題