2011-08-19 4 views
0

번들을 통해 데이터를 전송할 때 문제가 있습니다.번들이 완전히 수신되지 않았습니다.

Intent toAudio = new Intent(TourDescription.this, Audio.class); 
toAudio.putParcelableArrayListExtra("poi", arraypoi); 
startActivity(toAudio); 

여기에 arraypoi은 ArrayList입니다. 이 ArrayList에는 값 세트가 들어 있습니다. listOfPOI 또한 배열 목록입니다

그리고 수신 클래스

, 나는이

listOfPOI = getIntent().getParcelableArrayListExtra("poi"); 
Collections.sort(listOfPOI); 

같은 있습니다.

문제가 발생하면 listOfPOI (null)의 3 가지 특정 변수에 대한 값을받을 수 없으며 모든 값이 적절하게 유지됩니다.

번들을 보내는 중에 나는 arraypoi도 정확하게 모든 값을 보낼 수 있지만 문제는 수신 중입니다.

참고 : 내 수업은 parcelable으로 구현됩니다.

답변이 없습니까?

+0

은 parcelable 클래스 코드를 확인해야합니다. 답을 수정하십시오. – Ronnie

답변

0

제 생각에는 두 가지 해결 방법이 있습니다.

첫째 :

당신은 ArrayList<YourObject>implementsParcelable의 서브 클래스로 YourOwnArrayList을 확인해야합니다. 둘째 Tutorial Here

:

for() 루프를 사용하여 객체를 전달합니다. 이렇게.

Intent toAudio = new Intent(TourDescription.this, Audio.class); 
toAudio.putExtra("SIZE", arraypoi.size()); 
for(int i=0; i<arraypoi.size(); i++) 
    toAudio.putExtra("POI"+i, arraypoi.get(i)); 
startActivity(toAudio); 

는 다른 클래스에서 가져 오는 동안

Bundle data = getIntent().getExtras(); 
int size=data.getInt("SIZE"); 
for(int i=0; i<size; i++) 
    listOfPOI.add((YOUR_OBJECT) data.getParcelable("POI"+i)); 

YOUR_OBJECTObject의 클래스 이름입니다.

관련 문제