java.lang.RuntimeException: Parcel: unable to marshal value KeywordResult(content=spider)
KeywordActivity
에서 KeywordAddActivity
로 ArrayList
를 담은 intent
를 호출하였을 때 발생하였다.
KeywordActivity.kt
binding.keywordAddBtnTv.setOnClickListener {
val addIntent = Intent(this, KeywordAddActivity::class.java)
addIntent.putExtra("keywordList", keywordList)
startActivity(addIntent)
keywordService.getKeyword(this, getIdx())
}
KeywordAddActivity.kt
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_keyword_add)
...
if (intent.hasExtra("keywordList")) {
keywordList = intent.getSerializableExtra("keywordList") as ArrayList<KeywordResult>
}
else { Toast.makeText(this, "키워드를 가져오는 과정에서 오류가 발생했습니다.",Toast.LENGTH_SHORT).show() }
배열의 데이터 타입인 KeywordResult
객체에 직렬화를 해줘야 하기 때문에 발생!
KeywordResult
타입을 정의한 클래스에 Serializable
인터페이스를 implements 해주어야 한다.
KeywordResponse.kt
data class KeywordResult(
@SerializedName(value = "content")val content:String
) :java.io.Serializable # 이렇게!