2014-11-22 4 views
1

Это проблема, с которой я столкнулся с новичком в Android. Я не могу найти никаких хороших обучающих программ в Интернете по работе с пакетными сложными объектами. Все примеры, которые я видел, касаются простых классов, которые содержат только примитивы.Android-пакет, содержащий другие объекты?

Однако в моем случае у меня сложный объект Maze, который объединяет другие объекты.

Например, вот мой Maze класс:

public class Maze { 
    int mazew; // width of maze 
    int mazeh; // height of maze 
    Cells mazecells ; // maze as a matrix of cells which keep track of the location of walls 
    Distance mazedists ; // a matrix with distance values for each cell towards the exit 
    Cells seencells ; // a matrix with cells 
    BSPNode rootnode ; // a binary tree type search data structure to quickly locate a subset of segments 
    ... 

А вот класс Cells:

public class Cells { 

    private int width; 
    private int height ; 
    private int[][] cells; 
    ... 

Как бы идти о парцелляции объекта, таких как лабиринт, который содержит другие объекты? Что делать, если эти совокупные объекты также содержат другие объекты. Я не могу представить, как пытаться разобрать целую цепочку объектов, если мне нужно делать вложенные дополнения! Любые советы о том, как пройти Maze объект между мероприятиями в лучшем виде оценили!

ответ

1

Если причина вы хотите сделать сложный объект Parcelable, чтобы разделить его между действиями/фрагментами, тогда вы можете вместо этого использовать EventBus. EventBus позволяет передавать простые объекты Java, избегая работы по реализации Parcelable для каждого объекта, от которого зависит сложный объект.

В качестве альтернативы, Serializable обычно является заменой для Parcelable, если производительность не является фактором. Использование Serializable обычно представляет собой тривиальное изменение кода добавления implements Serializable к вашим классам. См. Parcelable vs Serializable для получения подробной информации о различиях в производительности.

2

Просто сделайте все объекты, которые вы хотите передать Parcelable (путем внедрения Parcelable interface) и поскольку каждый Parcelable сам объект и посылок все его, что в основном все, что вам нужно сделать (и беспокоить :)

+0

Похоже, он не хочет делать работу, чтобы сделать все возможной. –

+0

то, что нужно, и то, что он может получить, иногда может быть совершенно иным :) –

+0

Я решил использовать парцеллу, но я не могу найти пример, где кто-то читает/пишет в объекте, а не примитив. – mrQWERTY

Смежные вопросы