Androidプログラミング初心者質問スレ Part3at TECH
Androidプログラミング初心者質問スレ Part3 - 暇つぶし2ch202:デフォルトの名無しさん
10/10/14 21:14:01
RelativeLayoutやLinearLayoutなどでまとめられたいくつかのUIを画面に追加する、という機能を作りたいのですが、

// サブ
setContentView(R.layout.x);
RelativeLayout rl = (RelativeLayout)findViewById(R.id.xid);
// メイン
LinearLayout main;
main = (LinearLayout)findViewById(R.id.main);
main.addView(rl);
main.addView(rl);

というように、同じものに対してaddView()を複数回やろうとすると、2回目のaddView()でIllegalStateExceptionが発生してしまいます。
これは既に「rl」に対して親が割り当てられているために、それを開放しないまま再度割り当てようとすると発生しているのだと認識しています。
じゃあ「rl」を別の変数に分ければいいのか、と思って

// サブ
setContentView(R.layout.x);
RelativeLayout rl1 = (RelativeLayout)findViewById(R.id.xid);
RelativeLayout rl2 = (RelativeLayout)findViewById(R.id.xid);
// メイン
LinearLayout main;
main = (LinearLayout)findViewById(R.id.main);
main.addView(rl1);
main.addView(rl2);

としましたが、結果は同じでした。
どうやら「rl」というより、「R.id.xid」が被っていることが問題のようです。

最終的に「ボタンを押すたびに決まったUIグループが画面に追加される」という機能を実現したいので、「R.id.xid」を分けるということができません。
XMLからUIグループを読み込むという方式を変えず、この問題を回避・解決する方法はないでしょうか?


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch