我對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. 將自定義對象傳遞給Arrays.asList
- 2. 將自定義對象從Android通過KSOAP傳遞給webservice
- 3. Android的 - 如何自定義對象傳遞給片段
- 4. 如何將自定義對象數組傳遞給ASMX webservice?
- 5. 從C#傳遞一個自定義對象到Powershell
- 6. 將json數據傳遞給一個自定義對象 - 安卓android
- 7. Android - 將自定義對象的ArrayList傳遞給另一個活動
- 8. Android自定義XML對象
- 9. 將自定義對象的數組列表傳遞給另一個活動
- 10. 寫一個自定義對象數組
- 11. 如何通過Web服務傳遞自定義對象
- 12. 如何我的自定義對象傳遞給片段
- 13. 如何通過NdefMessage傳遞自定義對象
- 14. 如何使用意圖傳遞自定義列表對象
- 15. 如何在一組自定義對象中查找對象
- 16. 在android中傳遞對象
- 17. 將自定義對象從servlet傳遞到JSP
- 18. ASP.NET MVC 5 - 自定義類型的RedirectToAction傳遞空對象
- 19. Quartz Scheduler:如何將自定義對象作爲JobParameter傳遞?
- 20. 傳遞自定義對象到Windows Mobile 6的應用
- 21. 傳遞給核心的自定義可分類對象
- 22. 將自定義對象從QtScript傳遞到C++時出錯
- 23. 在自定義JSP標記中傳遞Java對象值
- 24. 在活動之間傳遞自定義對象
- 25. 的Javascript傳遞自定義對象到服務器側方法
- 26. 傳遞自定義對象與XAML結合
- 27. 如何在onEndPage()itext方法中傳遞自定義對象?
- 28. 將ngModel中的對象傳遞給自定義控件Angular2
- 29. 將自定義對象傳遞給Windows Workflow WCF服務
- 30. MSTest數據源 - 傳遞自定義對象集合
你有什麼異常? – 2011-03-28 14:12:18