App/Android

[Android][Error] Parcel: unable to marshal value - ArrayList를 Intent에 담아 보내기

앙두딘 2022. 8. 29. 15:36

이 에러는 Intent에 담긴 list의 직렬화를 해주지 않아서 일어나는 에러이다.

 

해결 방법

ArrayList 객체를 Intent로 전달하려면 데이터 클래스를 직렬화해야한다.

따라서, 사용하고 있는 데이터 클래스(나의 경우 SafetyInfo)에 Serializable 인터페이스를 아래와 같이 implements해준다.

putExtra로 집어넣고,

Intent finish_intent = new Intent(getApplicationContext(), MainActivity.class);
finish_intent.putExtra("safety_info", mListQR);

getExtra할 때, 다음과 같이 한다.

ArrayList<SafetyInfo>mListQR = (ArrayList<SafetyInfo>)intent.getSerializableExtra("safety_info");