Heim  >  Artikel  >  Java  >  Wie kann der Fehler „Angegebenes Kind hat bereits ein Elternteil' in Android behoben werden?

Wie kann der Fehler „Angegebenes Kind hat bereits ein Elternteil' in Android behoben werden?

DDD
DDDOriginal
2024-10-31 21:20:02944Durchsuche

How to Fix the

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn