본문 바로가기
Front-end/Android (안드로이드 앱 개발)

Android Studio , 동적 뷰 생성 시 많이 접하는 Exception / java.lang.IllegalStateException: The specified child a already has a parent. You must call removeView() on the child's parent first

by javapp 자바앱 2021. 9. 12.
728x90

 

 

뷰들을 동적 생성하면서 흔히 접하는 Exception 이 있다.

위 경우는 

TableLayout 을 생성하는 경우이다.

TableRow 를 생성해서 TextView 로 속성값을 생성하여 addView() 하고 완성된 한 행을

TableLayout 에 addView 를 하는 것이다.

 

 

java.lang.IllegalStateException: The specified child a already has a parent. You must call removeView() on the child's parent first

이 예외는 이미 한번 addView 한 View 타입을 한번 더 addView 할 때 발생한다. (중복 추가)


TableRow 한 행을 완성한 후 TableLayout 에 addView 하는 것이 맞다.

이 경우는 쉽게 보이는 경우고 View 를 많이 다룰 때 헷갈려서 위 예외가 발생하는 경우가 있어서

 

동적 생성 단계를 하나하나 잘 파악하고 그려나가면서 addView 하는 것이 좋을 것 같다.

댓글