J'essaie d'ajouter TextViews
à ma mise en page définie par xml dans le code. Je dispose d'une feuille de calcul xml, dans laquelle de nombreuses Views
sont définis. Mais je dois ajouter quelques vues dans le code, donc je crée un fichier LinearLayout
dans la feuille xml :
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:id="@+id/info"
android:layout_height="wrap_content"
android:orientation="vertical">
</LinearLayout>
Et dans cette mise en page, j'aime ajouter mes TextView
:
View linearLayout = findViewById(R.id.info);
//LinearLayout layout = (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);
Mais je ne reçois que le message d'erreur suivant :
: java.lang.ClassCastException: android.widget.TextView
Comment puis-je le faire ?
Merci pour votre aide. Martin
0 votes
Sur quelle ligne se trouve cette exception ? Elle doit provenir du cast LinearLayout, êtes-vous sûr que la variable linearLayout est un LinearLayout et non un TextView ? De plus, vous ne devriez pas spécifier l'Id puisque vous ne pouvez pas garantir qu'il sera unique.
1 votes
Vous avez raison, linearLayout est un TextView, mais pourquoi ? Je l'ai défini dans le fichier xml comme un LinearLayout ...
1 votes
Assurez-vous que vous opérez réellement sur le xml indiqué ci-dessus. Est-ce que
setContentView(R.layout.your_xml_layout);
charger vraiment le bon xml ? Avez-vous d'autres mises en page xml où vous utilisezandroid:id="@+id/info"
qui se trouve être un TextView ?0 votes
Ce problème est-il résolu ? Veuillez accepter comme réponse ou en poster une.