The specified child already has a parent錯誤

來源:互聯網
上載者:User

標籤:

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的父控制項來實現)。運行時又不允許一個有父控制項的子控制項在有了一個父控制項時,改變他的父控制項。

解決方案:重新用布局檔案執行個體化一個子控制項,再添加到父控制項上。

The specified child already has a parent錯誤

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.