Menambah TextView pada LinearLayout Secara Pengaturcaraan dalam Android
Dalam pembangunan Android, selalunya perlu menambah paparan secara dinamik pada reka letak yang ditakrifkan dalam fail XML. Artikel ini meneroka proses menambah TextView pada LinearLayout yang dipratakrifkan dalam kod.
Masalah:
Pengguna cuba menambah TextView pada LinearLayout yang ditakrifkan dalam XML menggunakan kod berikut:
<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>
Walau bagaimanapun, kod ini menghasilkan pengecualian ClassCastException:
java.lang.ClassCastException: android.widget.TextView
Penyelesaian:
Ralat berlaku disebabkan oleh hantaran pembolehubah linearLayout yang salah. Untuk mengakses LinearLayout, ia harus dipancarkan sebagai LinearLayout secara eksplisit:
<code class="xml">LinearLayout linearLayout = (LinearLayout)findViewById(R.id.info); ... linearLayout.addView(valueTV);</code>
Selain itu, tika LayoutParams hendaklah dibuat menggunakan LinearLayout.LayoutParams dan bukannya LayoutParams.
Kod Dibetulkan :
<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>
Dengan membuat perubahan ini, TextView akan berjaya ditambahkan pada LinearLayout.
Atas ialah kandungan terperinci Bagaimana untuk Menambah TextView dengan betul ke LinearLayout Secara Pemrograman dalam Android?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!