7
我已經閱讀過關於傳遞數組的數據,但是我很困惑我會如何爲我的具體情況做這件事。如何將對象數組傳遞給Activity?
我有一個名爲DaysWeather(DaysWeather []數組)的對象數組,其中的對象有幾個String屬性以及一個位圖屬性。我讀了一些地方,你必須使它可序列化或parceable或東西,但它乍看起來似乎凌亂。
有人能帶我走向正確的方向嗎?
有沒有簡單的方法來做到這一點?
我已經閱讀過關於傳遞數組的數據,但是我很困惑我會如何爲我的具體情況做這件事。如何將對象數組傳遞給Activity?
我有一個名爲DaysWeather(DaysWeather []數組)的對象數組,其中的對象有幾個String屬性以及一個位圖屬性。我讀了一些地方,你必須使它可序列化或parceable或東西,但它乍看起來似乎凌亂。
有人能帶我走向正確的方向嗎?
有沒有簡單的方法來做到這一點?
您的對象需要實現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的位圖。
但是不要這樣做。使用其他方法傳輸對象,如服務。 – Falmarri 2010-11-15 15:56:59
在活動之間傳遞對象的另一種方式是使用內容提供者,廣播接收者和意圖過濾器。 (http://thinkandroid.wordpress.com/2010/02/02/custom-intents-and-broadcasting-with-receivers/) – 2010-11-15 16:33:55
當你說「不要序列化完整的重物時,我不知道你的意思。 「我的位圖沒有資源ID,因爲它們是從Web直接下載到各自的容器對象中的。另外,你能指導我一個合適的教程/實施Parcelable的例子嗎?我的對象(DaysWeather)只是包含5個字符串和一個位圖的數據結構。我不確定如何用這些數據實現writeToParcel()方法。 – joepetrakovich 2010-11-15 18:25:37