The specified child already has a parent错误
10-05 23:39:48.187: E/AndroidRuntime(12854): Caused by: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
10-05 23:39:48.187: E/AndroidRuntime(12854): at android.view.ViewGroup.addViewInner(ViewGroup.java:1976)
10-05 23:39:48.187: E/AndroidRuntime(12854): at android.view.ViewGroup.addView(ViewGroup.java:1871)
10-05 23:39:48.187: E/AndroidRuntime(12854): at android.view.ViewGroup.addView(ViewGroup.java:1828)
10-05 23:39:48.187: E/AndroidRuntime(12854): at android.view.ViewGroup.addView(ViewGroup.java:1808)
10-05 23:39:48.187: E/AndroidRuntime(12854): at com.solar.WaterLevelActivity.InitUnitTimeLowestWaterLevel(WaterLevelActivity.java:49)
10-05 23:39:48.187: E/AndroidRuntime(12854): at com.solar.WaterLevelActivity.InitView(WaterLevelActivity.java:30)
10-05 23:39:48.187: E/AndroidRuntime(12854): at com.solar.WaterLevelActivity.onCreate(WaterLevelActivity.java:25)
10-05 23:39:48.187: E/AndroidRuntime(12854): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-05 23:39:48.187: E/AndroidRuntime(12854): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
10-05 23:39:48.187: E/AndroidRuntime(12854): ... 11 more
补充说明:InitUnitTimeLowestWaterLevel()在OnCreate函数中被调用,用来初始化界面。实现的效果是动态添加界面。
下面是出错的代码:
1 private void InitUnitTimeLowestWaterLevel() {
2 LinearLayout listMachines = (LinearLayout) findViewById(R.id.water_level_page_water_level_setting);
3 LayoutInflater inflater = LayoutInflater.from(WaterLevelActivity.this);
4 View tlWaterLevelInfo = inflater.inflate(R.layout.unit_time_water_level_item, null);
5 listMachines.addView(tlWaterLevelInfo);
6 listMachines.addView(tlWaterLevelInfo); //这个地方出错了。
7 }
错误的原因:通过LayoutInflater实例化的一个布局(View)。被重复添加了两次。而一个View只能有一个父控件。当第二次添加的时候,又要改变这个控件的父控件(虽然是同一个父控件,但是也要通过改变该View的父控件来实现)。运行时又不允许一个有父控件的子控件在有了一个父控件时,改变他的父控件。
解决方案:重新用布局文件实例化一个子控件,再添加到父控件上。
最新文章
- Android接入支付宝和银联
- Redis学习笔记(4) Redis事务、生存时间及排序
- 赴美工作常识(Part 4 - 面试)
- C#语法糖(Csharp Syntactic sugar)大汇总
- 给日志添加“复制”效果
- A+B问题 涉及EOF
- text-overflow 与 word-wrap:设置使用一个省略标记...标示对象内文本的溢出。
- 想找个计算器当本命?来试试UWP应用《纸书科学计算器》
- BZOJ 1143: [CTSC2008]祭祀river 最长反链
- mysql解压版配置
- SQL Server 2012 - Transact-SQL
- 前端mv框架下(目前写的是vue),对组件抽象的思考
- 18.Odoo产品分析 (二) – 商业板块(10) – 电子商务(2)
- 『TensorFlow』读书笔记_简单卷积神经网络
- linux下怎样查看哪些进程占用swap空间
- 删除oracle 表中重复数据sql语句、保留rowid最小的一条记录
- 【WPF】ListBox嵌套与事件冒泡
- Java 多线程 ---- 线程中this与 Thread.currentThread()线程的区别
- Win7 搭建pptpvpn服务器方法
- python os模块常用命令
热门文章
- [HTML]js实现页面跳转,页面A跳到另一个页面B.以及页面传值(中文)
- [ios][swift]swift 怎么去除 optional
- ACM题目————士兵杀敌(四)
- 【转】MYSQL入门学习之五:MYSQL的字符集
- HTML,javaScript,DOM详解
- Unity-Animato深入系列---FloatValue阻尼
- Git学习笔记03--git reset
- 监控windows服务,当服务停止后自动重启服务
- Android编译选项eng、user、userdebug的区别
- javascript耐人寻味