在 Android 中以编程方式将 TextView 添加到 LinearLayout
在 Android 开发中,经常需要将视图动态添加到定义的布局中一个 XML 文件。本文探讨了在代码中将 TextView 添加到预定义的 LinearLayout 的过程。
问题:
用户尝试将 TextView 添加到定义的 LinearLayout XML 使用以下代码:
<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>
但是,此代码导致 ClassCastException 异常:
java.lang.ClassCastException: android.widget.TextView
解决方案:
错误由于 LinearLayout 变量的转换不正确而发生。要访问 LinearLayout,应将其显式转换为 LinearLayout:
<code class="xml">LinearLayout linearLayout = (LinearLayout)findViewById(R.id.info); ... linearLayout.addView(valueTV);</code>
此外,应使用 LinearLayout.LayoutParams 而不是 LayoutParams 创建 LayoutParams 实例。
更正的代码:
<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>
通过进行这些更改,TextView 将成功添加到 LinearLayout。
以上是如何在 Android 中以编程方式正确地将 TextView 添加到 LinearLayout?的详细内容。更多信息请关注PHP中文网其他相关文章!