我是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文档。
答案 0 :(得分:0)
这里马上有几个问题要问,但我会试一下!
我需要知道如何使用Android Studio使用Java创建XML元素(例如TextView)
您在这里谈论的“ XML元素”是Android Views,在布局xml文件中使用xml标签只是告诉系统创建它们的一种方法。无论您是以XML表示视图还是编写Java代码以实例化它们,它们都将在以后成为应用程序内存中的View对象。
可以动态创建布局和视图,但是冗长且有点不直观,因为您必须在代码中指定布局参数。例如,如果您在XML布局中有一个ID为LinearLayout
的父级parent
,可以像这样向其添加一个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);
}
该方法的问题在于,如果添加太多视图,它将无法处理滚动,并且会随着数组大小线性扩展内存使用量(通过为每个元素创建一个新的TextView)。
您可能想了解更多有关RecyclerView的信息,它将为您提供可滚动的虚拟视图列表,在您滚动时智能地重用已经创建的TextViews
。详细了解here!