2014-10-13 1 views
0

맞춤 클래스 객체/변수가있는 클래스를 만들고이 클래스를 의도적으로 전달할 수 있도록 parcelable로 만들고 싶습니다.클래스의 사용자 정의 유형 객체/변수에 대한 Parcelable 사용 방법 (Android)

자세한 다음 활동에 리스폰스를받을 난 내가 형 바의 사용자 정의 유형 개체/변수, 즉이 위 클래스에서 클래스 첫 번째, 즉

public class Data implements Parcelable{ 


    @SerializedName("barlist") 
    Bar bar_list[]; 



    public Bar[] getBarLst() { 
     return bar_list; 
    } 

    public void setBarLst(Bar lst[]) { 
     this.bar_list = lst; 
    } 



    @Override 
    public int describeContents() { 
     // TODO Auto-generated method stub 
     return 0; 
    } 

    @Override 
    public void writeToParcel(Parcel parcel, int flags) { 
     parcel.writeParcelableArray(bar_list, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); 

    } 
    public static final Parcelable.Creator<Data> CREATOR = new Creator<Data>() { 
      public Data createFromParcel(Parcel source) { 
       Data data = new Data(); 
       data.bar_list = (Bar[]) source.readParcelableArray(this.getClass().getClassLoader()); 

       return data; 
      } 

     @Override 
     public Data[] newArray(int size) { 
      // TODO Auto-generated method stub 
      return new Data[size]; 
     } 
    }; 

} 

을 가지고

내 다음 수업이다 ::

public class Bar implements Parcelable{ 

    @SerializedName("name") 
    String Name; 

    @SerializedName("sex") 
    String sex; 

    @SerializedName("type") 
    String type; 

    @SerializedName("userid") 
    String userId; 

    @SerializedName("contactno") 
    String ContactNo; 

    @SerializedName("zipcode") 
    String zipCode; 

    @SerializedName("address") 
    String Address; 

    @SerializedName("email") 
    String Email; 



    public String getName() { 
     return Name; 
    } 
    public void setName(String name) { 
     Name = name; 
    } 
    public String getSex() { 
     return sex; 
    } 
    public void setSex(String sex) { 
     this.sex = sex; 
    } 
    public String getType() { 
     return type; 
    } 
    public void setType(String type) { 
     this.type = type; 
    } 
    public String getUserId() { 
     return userId; 
    } 
    public void setUserId(String userId) { 
     this.userId = userId; 
    } 
    public String getContactNo() { 
     return ContactNo; 
    } 
    public void setContactNo(String contactNo) { 
     ContactNo = contactNo; 
    } 
    public String getZipCode() { 
     return zipCode; 
    } 
    public void setZipCode(String zipCode) { 
     this.zipCode = zipCode; 
    } 
    public String getAddress() { 
     return Address; 
    } 
    public void setAddress(String address) { 
     Address = address; 
    } 
    public String getEmail() { 
     return Email; 
    } 
    public void setEmail(String email) { 
     Email = email; 
    } 
    @Override 
    public int describeContents() { 
     // TODO Auto-generated method stub 
     return 0; 
    } 
    @Override 
    public void writeToParcel(Parcel parcel, int flags) { 
     parcel.writeString(Name); 
     parcel.writeString(sex); 
     parcel.writeString(type); 
     parcel.writeString(userId); 
     parcel.writeString(ContactNo); 
     parcel.writeString(zipCode); 
     parcel.writeString(Address); 
     parcel.writeString(Email); 
    } 

    public static final Parcelable.Creator<Bar> CREATOR = new Creator<Bar>() { 
      public Bar createFromParcel(Parcel source) { 
       Bar barlst = new Bar(); 
       barlst.Name = source.readString(); 
       barlst.sex = source.readString(); 
       barlst.ContactNo = source.readString(); 
       barlst.type = source.readString(); 
       barlst.userId = source.readString(); 
       barlst.zipCode = source.readString(); 
       barlst.Address = source.readString(); 
       barlst.Email = source.readString(); 
       return barlst; 
      } 

     @Override 
     public Bar[] newArray(int size) { 
      // TODO Auto-generated method stub 
      return new Bar[size]; 
     } 
    }; 
} 

나는 내가 한 첫 활동 있도록 데이터 클래스 (일등석) 객체가 parcelable 수 만들고 싶어 여기까지이

EmptyRequest empt = new EmptyRequest(); 
Data responsestr = userManager.getMainMenuItems(empt,"url","Post","getBarList"); 

Intent myintent = new Intent(MainMenuPageActivity.this, BarListPageActivity.class); 
Bundle mbundle = new Bundle(); 
mbundle.putParcelable("BARLIST", responsestr); 
myintent.putExtras(mbundle); 
startActivity(myintent); 

같은 몇 가지이 내 코드는 잘 작동하고 나는 parcelable

에 입력 한 데이터의 responsestr을 유지하고 내 옆에 acitivity에서 내가 데이터가이

Data responseStr = (Response)getIntent().getParcelableExtra("BARLIST"); 
0123과 같은 객체를 가져 오기 위해 노력

데이터 형식의 개체를 가져올 수 있지만이 작동하지 및 두 번째 작업 클래스를 찾을 수없는 예외를 내 디버거가 두 번째 작업에 도달합니다. 사전에

감사합니다 ....

답변

0

사용

getIntent().getExtras().getParcelableExtra("BARLIST"); 
관련 문제