Maison >Java >javaDidacticiel >Comment ajouter correctement un TextView à un LinearLayout par programme sous 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!