Maison > Java > javaDidacticiel > Pourquoi est-ce que j'obtiens l'erreur « L'enfant spécifié a déjà un parent » dans Android ?

Pourquoi est-ce que j'obtiens l'erreur « L'enfant spécifié a déjà un parent » dans Android ?

DDD
Libérer: 2024-10-30 13:51:27
original
353 Les gens l'ont consulté

Why Am I Getting

Erreur : l'enfant spécifié a déjà un parent (Android)

Problème :

Le fait de basculer fréquemment entre deux mises en page entraîne l'erreur suivante :

FATAL EXCEPTION: main
java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
Copier après la connexion

Extrait de code :

<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>
Copier après la connexion

Solution :

Le message d'erreur suggère de supprimer l'enfant (TextView) de son parent actuel avant de l'ajouter à la nouvelle mise en page.

Ajoutez le code suivant avant layout.addView(tv);:

<code class="java">if (tv.getParent() != null) {
    ((ViewGroup) tv.getParent()).removeView(tv); // Fix
}</code>
Copier après la connexion

Cela garantit que TextView est correctement supprimé de tout parent existant avant d'être ajouté à la nouvelle mise en page, évitant ainsi le conflit parent spécifié.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal