2014-11-22 1 views
1

이것은 Android 초보자로서 내가 풀 렸던 문제입니다. 나는 복잡한 객체들을 나누어 처리하는 것에 관한 온라인 튜토리얼을 찾을 수 없다. 필자가 본 모든 예제는 프리미티브 만 포함하는 간단한 클래스를 다룹니다.다른 개체가 포함 된 Android 파셀링 개체?

그러나 제 경우에는 다른 객체를 집계하는 복잡한 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 
    ... 

그리고 여기 셀 클래스 :

public class Cells { 

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

가 어떻게 같은 다른 개체를 포함 미로 같은 객체를 나누기에 대해 갈 것이라고는? 해당 집계 개체에 다른 개체가 포함되어 있으면 어떻게 될까요? 중첩 된 parcelables를 수행해야한다면 객체 체인 전체를 구문 분석하려고하는 것을 상상할 수 없습니다! 최선의 방법으로 활동 사이에 Maze 개체를 전달하는 방법에 대한 조언을 보내 주시면 감사하겠습니다.

답변

1

만약 이유 당신 Parcelable이라는 복잡한 객체를 만들고 싶다면 액티비티/프래그먼트간에이를 공유하는 것이므로 EventBus을 대신 사용할 수 있습니다. EventBus를 사용하면 복잡한 객체가 의존하는 모든 단일 객체에 대해 Parcelable을 구현하지 않아도되는 일반적인 Java 객체를 전달할 수 있습니다.

또는 성능이 중요하지 않은 경우 Serializable은 일반적으로 Parcelable의 드롭 인 대체품입니다. Serializable을 사용하는 것은 일반적으로 클래스에 implements Serializable을 추가하는 사소한 코드 변경입니다. 성능 차이에 대한 자세한 내용은 Parcelable vs Serializable을 참조하십시오.

2

그냥 당신이 (Parcelable interface를 구현하여) Parcelable 함께 전달하려는 모든 개체를 확인하고 각 Parcelable 객체 소포 자체 이후 모든 기본적으로 당신이 할 필요가 전부 그 (와 귀찮게 :

+0

그는 모든 것을 소화하기 위해 노력하고 싶지 않은 것처럼 보입니다. –

+0

무엇이 원하는지, 그가 무엇을 얻을 수 있는지가 때로는 완전히 다를 수 있습니다. –

+0

나는 parcelabe를 사용하기로 결정했으나, 누군가가 원시적 인 것과는 반대로 객체를 읽고 쓰는 예제를 찾을 수 없습니다. – mrQWERTY

관련 문제