我的应用程序需要动态创建一些带有复选框和文本视图的水平线性布局。目前我是在for循环中动态创建这些布局。为了提高性能和便利,我认为使用layoutinflater是更好的方法,因此定义一个具有正确格式的水平线性布局,然后在某种循环内添加这些布局,但我遇到了麻烦。如果有更好的实现方式(或者我的当前方式确实更好),我也很乐意尝试。
//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.
我也考虑将布局添加到主线性布局中,然后获取它并复制它,然后再添加更多。你们能帮我学习如何做吗?
非常感谢!