Maison >Java >javaDidacticiel >Comment ajouter correctement un TextView à un LinearLayout par programme sous Android ?

Comment ajouter correctement un TextView à un LinearLayout par programme sous Android ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-26 05:53:03315parcourir

How to Correctly Add a TextView to a LinearLayout Programmatically in Android?

Ajout d'un TextView à un LinearLayout par programme sous Android

Dans le développement Android, il est souvent nécessaire d'ajouter des vues dynamiquement à une mise en page définie dans un fichier XML. Cet article explore le processus d'ajout d'un TextView à un LinearLayout prédéfini dans le code.

Problème :

L'utilisateur a tenté d'ajouter un TextView à un LinearLayout défini dans XML en utilisant le code suivant :

<code class="xml">View linearLayout = findViewById(R.id.info);
TextView valueTV = new TextView(this);
valueTV.setText("hallo hallo");
valueTV.setId(5);
valueTV.setLayoutParams(new LayoutParams(
        LayoutParams.FILL_PARENT,
        LayoutParams.WRAP_CONTENT));

((LinearLayout) linearLayout).addView(valueTV);</code>

Cependant, ce code a entraîné une exception ClassCastException :

java.lang.ClassCastException: android.widget.TextView

Solution :

L'erreur s'est produit en raison d'une conversion incorrecte de la variable LinearLayout. Pour accéder au LinearLayout, il doit être converti explicitement en LinearLayout :

<code class="xml">LinearLayout linearLayout = (LinearLayout)findViewById(R.id.info);
...
linearLayout.addView(valueTV);</code>

De plus, l'instance LayoutParams doit être créée en utilisant LinearLayout.LayoutParams au lieu de LayoutParams.

Code corrigé :

<code class="xml">LinearLayout linearLayout = (LinearLayout)findViewById(R.id.info);

TextView valueTV = new TextView(this);
valueTV.setText("hallo hallo");
valueTV.setId(5);
valueTV.setLayoutParams(new LinearLayout.LayoutParams(
        LinearLayout.LayoutParams.FILL_PARENT,
        LinearLayout.LayoutParams.WRAP_CONTENT));

linearLayout.addView(valueTV);</code>

En effectuant ces modifications, le TextView sera ajouté avec succès au LinearLayout.

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!

Déclaration:
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