java - 如何在java中动态创建XML元素?

标签 java android xml android-layout

我是 java 和 XML 新手,我需要知道如何使用 android studio 使用 java 创建 XML 元素(如 TextView)。

我有一个包含一些信息的数组列表,我想创建一个 for 循环来创建包含数组信息的元素。

我想它看起来像这样

for (int i = 0; i < myArray.size(); i++) {
    Element textview = document.createElement("TextView");
    textView.content = myArray.get(i);
    document.appendChild(textView);
}

请注意,我正在尝试在应用程序中执行此操作,并且已经有一个 XML 文档。

最佳答案

这里同时提出了几个问题,但我会尝试一下!

I need to know how to create XML elements (like TextView) with java using android studio

您在这里谈论的“XML 元素”是 Android Views在布局 xml 文件中使用 xml 标记只是告诉系统创建它们的一种方式。无论您是用 XML 表达 View 还是编写 Java 代码来实例化它们,它们稍后都会成为应用程序内存中的 View 对象。

动态创建布局和 View 是可能的,但很冗长并且有点不直观,因为您必须在代码中指定布局参数。例如,如果 xml 布局中有 ID 为 parent 的父级 LinearLayout,则可以检索父级 LinearLayout,并向其添加一个 TextView,如下所示:

final LinearLayout linearLayout = (LinearLayout) findViewById(R.id.parent);
final TextView text = new TextView(this);
text.setText("Hello World");
linearLayout.addView(text);

当然,您可以循环执行此操作:

final LinearLayout linearLayout = (LinearLayout) findViewById(R.id.parent);
for (int i = 0; i < myArray.size(); i++) {
    final TextView text = new TextView(this);
    text.setText(myArray.get(i));
    linearLayout.addView(text);
}

这种方法的问题是,如果您添加太多 View ,它就无法处理滚动,并且它会随着数组的大小线性扩展内存使用量(通过为每个元素创建一个新的 TextView)。

您可能想了解更多关于 RecyclerView 的内容,它将为您提供一个可滚动的虚拟 View 列表,当您滚动时,它将智能地重用已创建的 TextView。了解更多相关信息here !

关于java - 如何在java中动态创建XML元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56517005/

相关文章:

xml - 如何使用 groovy xml 生成器创建 namespace 属性

java - 使用java将数据索引到弹性时出错

java - 用于以版本格式提取数字的正则表达式

java - 将 JSON 转换为 XML 时出现的问题

java - 正确打印多行 xml 节点

java - fragment 上的 Mapbox 膨胀 View

java - Dropbox android sdk 文档

android - OkHttp + 改造离线缓存不起作用

Android:如何在 XML 中制作一个有一个角的圆形?

xml - 具有规范化文档结构的 Solr