2016-09-24 8 views
0

IntentExtra 콜렉션 [] 배열을 전달하려고하지만 작동하지 않습니다. 다른 작업에서는 왜 객체 배열을 통해 객체 배열을 전달할 수 없습니까?

   Intent intent = new Intent(SzabadEuMusorokLeirasActivity.this, SzabadEuMusorokViewActivity.class); 
      JSONdata jsonData = new JSONdata("http://1956.osaarchivum.org/api/items?collection=13"); 
      intent.putExtra("ARRAY_EXTRA", jsonData.getCollections()); 
      startActivity(intent); 

:

Intent intent = getIntent(); 
    Parcelable[] parcelables = intent.getParcelableArrayExtra("ASD"); 
    mCollections = Arrays.copyOf(parcelables, parcelables.length, Collection[].class); 

는 parcelables.length가 null 있기 때문에 NullPointerException이 도착 mCollections Arrays.copyOf = (...) 라인에 들어가면 ...

public class Collection implements Parcelable{ 

private String mTitile; 
private String mSubject; 
private String mMediaURL; 

public Collection() {} 

protected Collection(Parcel in){ 
    mTitile = in.readString(); 
    mSubject = in.readString(); 
    mMediaURL = in.readString(); 
} 

public static final Creator<Collection> CREATOR = new Creator<Collection>() { 
    @Override 
    public Collection createFromParcel(Parcel in) { 
     return new Collection(in); 
    } 

    @Override 
    public Collection[] newArray(int size) { 
     return new Collection[size]; 
    } 
}; 

public String getTitile() { 
    return mTitile; 
} 

public void setTitile(String titile) { 
    mTitile = titile; 
} 

public String getSubject() { 
    return mSubject; 
} 

public void setSubject(String subject) { 
    mSubject = subject; 
} 

public String getMediaURL() { 
    return mMediaURL; 
} 

public void setMediaURL(String mediaURL) { 
    mMediaURL = mediaURL; 
} 

@Override 
public int describeContents() { 
    return 0; 
} 

@Override 
public void writeToParcel(Parcel dest, int flags) { 
    dest.writeString(mTitile); 
    dest.writeString(mSubject); 
    dest.writeString(mMediaURL); 
} 

}

,369 : 여기

는 컬렉션 클래스입니다

+0

[this] (http://stackoverflow.com/questions/5460222/pass-an-array-of-custom-objects-android) 질문 및 [this] (http://stackoverflow.com/questions/13778485/how-do-i-send-an-array-of-objects-from-one-activity-to-another) –

+0

[개체를 보내는 방법 인 텐트를 사용하여 다른 Android 활동에 하나의 Android 활동?] (http://stackoverflow.com/questions/2139134/how-to-send-an-object-from-one-android-activity-to-another-using-intents) – theduck

답변

0

글쎄, "ARRAY_EXTRA"키를 사용하여 여분을 추가하면 "ASD"키를 사용하여 Activity 다른 키로 추출하려고합니다. 그것은 작동하지 않습니다. 다른 활동에

intent.putExtra("ARRAY_EXTRA", jsonData.getCollections()); 
    startActivity(intent); 

는 :

Intent intent = getIntent(); 
    Parcelable[] parcelables = intent.getParcelableArrayExtra("ASD"); 
0

당신은 텐트 클래스에 putParcelableArrayListExtra() 방법을 사용해야합니다. 수신기 활동에서 getParcelableArrayListExtra() 메소드를 사용하고 있으므로

관련 문제