Android: Behebung des Fehlers „Angegebenes Kind hat bereits ein Elternteil“
Beim wiederholten Versuch, zwischen Layouts zu wechseln, kann es zu einer Fehlermeldung kommen , „Das angegebene untergeordnete Element hat bereits ein übergeordnetes Element. Sie müssen zuerst „removeView()“ für das übergeordnete Element des untergeordneten Elements aufrufen.“ Dies tritt auf, wenn Sie versuchen, eine Ansicht zu einem Layout hinzuzufügen, ohne sie zuvor aus dem vorherigen übergeordneten Layout zu entfernen.
Fehlerauslöser
Der Fehler tritt normalerweise auf, wenn zwischen Layouts gewechselt wird enthalten die gleichen Ansichten. Beispielsweise könnten Sie in beiden Layouts eine TextView (TV) haben. Wenn Sie zum zweiten Layout wechseln, erscheint der Fehler, wenn Sie erneut versuchen, TV hinzuzufügen, ohne es aus dem ersten Layout zu entfernen.
Layout-Code
Ihr Layout Der in der Frage angegebene Code versucht, tv zu einem LinearLayout hinzuzufügen:
<code class="java">// TEXTVIEW layout.addView(tv);</code>
Bei nachfolgenden Ausführungen verfügt tv jedoch bereits über ein übergeordnetes Element (das LinearLayout aus dem vorherigen Layout), was zu dem Fehler führt.
Lösung
Um dieses Problem zu beheben, müssen Sie tv von seinem vorherigen übergeordneten Gerät entfernen, bevor Sie es dem neuen hinzufügen. Dies kann wie folgt erreicht werden:
<code class="java">// TEXTVIEW if (tv.getParent() != null) { ((ViewGroup) tv.getParent()).removeView(tv); // <- fix } layout.addView(tv);</code>
Dieser Code prüft, ob tv bereits über ein übergeordnetes Element verfügt. Wenn dies der Fall ist, entfernt er es von diesem übergeordneten Element, bevor es zum aktuellen LinearLayout hinzugefügt wird.
Das obige ist der detaillierte Inhalt vonWie kann der Fehler „Angegebenes Kind hat bereits ein Elternteil' in Android behoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!