首页  >  文章  >  Java  >  如何在 Android 中以编程方式正确地将 TextView 添加到 LinearLayout?

如何在 Android 中以编程方式正确地将 TextView 添加到 LinearLayout?

Patricia Arquette
Patricia Arquette原创
2024-10-26 05:53:03248浏览

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

在 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn