Heim > Java > javaLernprogramm > Hauptteil

Warum erhalte ich in Android die Fehlermeldung „Das angegebene Kind hat bereits ein Elternteil'?

DDD
Freigeben: 2024-10-30 13:51:27
Original
295 Leute haben es durchsucht

Why Am I Getting

Fehler: Das angegebene Kind hat bereits ein Elternteil (Android)

Problem:

Häufiges Wechseln zwischen zwei Layouts führt zu folgendem Fehler:

FATAL EXCEPTION: main
java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
Nach dem Login kopieren

Code-Snippet:

<code class="java">tv = new TextView(getApplicationContext()); // initialized elsewhere
et = new EditText(getApplicationContext()); // initialized elsewhere

private void ConsoleWindow() {
    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            // MY LAYOUT:
            setContentView(R.layout.activity_console);
            // LINEAR LAYOUT
            LinearLayout layout = new LinearLayout(getApplicationContext());
            layout.setOrientation(LinearLayout.VERTICAL);
            setContentView(layout);

            // TEXTVIEW
            layout.addView(tv); // ERROR IN THIS LINE DURING 2ND RUN
            // EDITTEXT
            et.setHint("Enter Command");
            layout.addView(et);
        }
    });
}</code>
Nach dem Login kopieren

Lösung:

Die Fehlermeldung schlägt vor, das untergeordnete Element (TextView) aus seinem aktuellen übergeordneten Element zu entfernen, bevor es dem neuen Layout hinzugefügt wird.

Fügen Sie den folgenden Code vor layout.addView(tv); hinzu:

<code class="java">if (tv.getParent() != null) {
    ((ViewGroup) tv.getParent()).removeView(tv); // Fix
}</code>
Nach dem Login kopieren

Dadurch wird sichergestellt, dass die TextView ordnungsgemäß von allen vorhandenen übergeordneten Elementen entfernt wird, bevor sie dem neuen Layout hinzugefügt wird, wodurch der angegebene übergeordnete Konflikt verhindert wird.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich in Android die Fehlermeldung „Das angegebene Kind hat bereits ein Elternteil'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!