
【Android】「The specified child already has a parent」の問題を解決
2015-06-06とあるViewにaddViewとかでViewを追加しようとする時に
「java.lang.IllegalStateException: The specified child already has a parent. You must call removeView()」
みたいなエラーメッセージが出てくることがある。
原因はaddViewしようとしているViewがすでに他のViewで使用されているから消してくれ、ってことらしい。
解決法
とりあえずaddViewする前に親が存在していたらそいつを消すようにする。
ViewGroup parent = (ViewGroup) mainView.getParent();
if (parent != null) {
parent.removeAllViews();
}
mainView.addView(subView);
こんな感じで親のViewを消してからaddViewするようにしたらエラー解消できた。