我對Android開發非常陌生,在這裏面臨一些小問題。 我有一類動物。我需要在兩個活動之間傳遞一個Animal類的數組。我搜索了論壇,發現這可以通過Parceable完成,但我無法完全理解。我嘗試使用Serializable但得到一個例外。 請指導我如何做到這一點?傳遞一組自定義對象+ Android
1
A
回答
6
推杆:
ArrayList<Animal> animals = new ArrayList<Animal>();
//fill your list with animals here
intent.putExtra("animals", animals);
檢索:
ArrayList<Animal> animals = (ArrayList<Animal>) getIntent()
.getSerializableExtra("animals");
你的類Animal
應該實現Serializable
。
編輯: 請注意,這種方法很容易實現,但效率低下。序列化和反序列化對象需要一定的時間,並且在數組規模較大(例如,100多個對象或10多個複雜的重對象)的情況下,可能會導致活動轉換出現明顯的延遲。所以請考慮這種方法是暫時的,不要在生產代碼中使用它。
爲了提高效率,可以使用David Caunt建議的Parcelable。這是一個易於使用的代碼生成器,以避免開發人員編寫樣板代碼:Parcelabler。
一個很好的選擇可以是在每個需要它的Activity
從本地數據庫獲取和檢索本地SQLite數據庫時存儲數據。因此,您將僅通過意向傳遞Content Url。
2
你應該implement Parcelable然後你可以傳遞你的對象。您基本上添加了幾個方法來將您的對象轉換爲Parcel,反之亦然。
Parcelling與Serialization類似但不相同。把它想象爲重建對象。
有一個例子,你正在試圖做什麼here。
1
你的課動物應該實現Serializable。
將數據
ArrayList<Animal> animals = new ArrayList<Animal>();
Intent intent = new Intent(MainActivity.this,
AnimalListActivity.class);
Bundle bundleObject = new Bundle();
bundleObject.putSerializable("animal", animals);
intent.putExtras(bundleObject);
startActivity(intent);
獲取數據
ArrayList<Animal> animals = new ArrayList<Animal>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.animal_activity);
Bundle bundleObject = getIntent().getExtras();
animals = (ArrayList<Animal>) bundleObject
.getSerializable("animal");
}
}
相關問題
- 1. 將自定義對象傳遞給另一個活動android
- 2. 傳遞自定義Java對象webEngine executeScript
- 3. 將自定義對象傳遞給Arrays.asList
- 4. 在Java中傳遞自定義對象
- 5. Android的 - 如何自定義對象傳遞給片段
- 6. 將自定義對象從Android通過KSOAP傳遞給webservice
- 7. Android自定義適配器傳遞對象的ArrayList
- 8. 將自定義對象數組傳遞給函數
- 9. 如何將自定義對象數組傳遞給ASMX webservice?
- 10. Android保存自定義對象數組
- 11. 從C#傳遞一個自定義對象到Powershell
- 12. 傳遞一個自定義對象Scala的模板
- 13. Android自定義XML對象
- 14. Android - 將自定義對象的ArrayList傳遞給另一個活動
- 15. 將自定義對象的數組列表傳遞給另一個活動
- 16. 正確的體系結構:如何傳遞一組自定義對象
- 17. 寫一個自定義對象數組
- 18. 將自變量傳遞給自定義對象的新.xib
- 19. 在Android活動之間高效地傳遞自定義對象數據[Mono Android]
- 20. 如何通過Web服務傳遞自定義對象
- 21. 如何我的自定義對象傳遞給片段
- 22. 傳遞自定義對象或只是ids
- 23. 定義一組對象
- 24. 如何使用意圖傳遞自定義列表對象
- 25. 如何在一組自定義對象中查找對象
- 26. 可傳遞自定義對象,當意圖傳遞時丟失實例值
- 27. 在改造中傳遞自定義對象2
- 28. 如何將對象從fetchedResultsController傳遞給自定義單元格?
- 29. MSTest數據源 - 傳遞自定義對象集合
- 30. 將自定義對象從QtScript傳遞到C++時出錯
你有什麼異常? – 2011-03-28 14:12:18