とある 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 するようにしたらエラー解消できた。