Android: removeViewしたものを再度addViewする

データ・ファイルの内容によって、表示するボタンの数を2列8個にしたり、1列4個にしたりできるようにしたいと思い、20分もあればできるだろうと改造を始めたら、半日以上掛かってしまった。(^^;

removeView()を使って、2列だったものを1列にするのは難なくできたのだが、一度 remove したものを addView しようとすると、エラーになってしまう。
どうも、xml で作った LinearLayout は、removeView した後で addView してはいけないらしい、というのが一応の結論。(厳密に調べたわけではないが)
2列の内の1列は xml で作成し、もう1列はコードで new する形にしたら、自由に removeView したり addView したりできるようになった。(^^;

1列の時はボタンのサイズを2列の時の2倍にする、というのも可能。
xml で作成する LinearLayout も、コードから作成する LinearLayout も、「weight を 1 にして、FILL_PARENT すれば良い」と分かった。
(最初は FILL_PARENT の部分を 0 にしていたのだが、2列表示の時に何故か余計な隙間が入って、きれいに表示されなかった)