私のアプリでは、チェックボックスとテキストビューを使用して、多数の水平方向の線形レイアウトを動的に作成する必要があります。現在、これらを for ループ内で動的に作成しています。パフォーマンスと使いやすさのために、これを行うには layoutinflater を使用する方が良いと考えたので、正しい書式設定で水平方向の線形レイアウトを 1 つ定義し、これらをある種のループ内に追加しますが、これに問題があります。また、私が求めているものを実装するためのより良い方法があるかどうか (または、現在の方法が実際にパフォーマンスなどに優れているかどうかなど) についてもオープンです。
//my main layout
LinearLayout main = (LinearLayout) findViewById(R.id.main);
LayoutInflater inflate = getLayoutInflater();
//inflating the layout containing the horizontal
LinearLayout l = (LinearLayout) inflate.inflate(R.layout.inflater, main, false);
//adding the view
main.addView(l);
問題は、これをあらゆる種類の for ループに入れることができないことです。以下は、addView コマンドを繰り返し実行した場合のエラー ログです。
12-24 19:37:18.668: E/AndroidRuntime(8780): java.lang.RuntimeException: Unable
to start activity ComponentInfo{com.example.test1/com.example.test1.MainActivity}:
java.lang.IllegalStateException: The specified child already has a
parent. You must call removeView() on the child's parent first.
また、レイアウトをメインのlinearlayoutに追加してから、それを取得して複製し、さらに追加することも検討しました。これを行う方法を学ぶのを手伝ってもらえますか?
どうもありがとうございました!