使用 for 循环以编程方式将 TextView 添加到 Layout
Adding TextView to Layout programmatically using for loop
所以我正在学习 Udacity Google 的 Android 基础课程。在 onCreate 方法中的一节课中,他们制作了字符串 ArrayList 并将值从“一”添加到“十”。之后,他们制作了 LinearLayout 变量,并使用 for 循环将 TextViews 添加到该布局。这就是整个代码的样子:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_numbers);
ArrayList<String> words = new ArrayList<>();
words.add("one");
words.add("two");
// ...
words.add("ten");
LinearLayout rootView = findViewById(R.id.root_view);
for (int i = 0; i < words.size(); i++) {
TextView wordView = new TextView(this);
wordView.setText(words.get(i));
rootView.addView(wordView);
}
}
他们没有解释,我们如何在 for 循环中添加十个同名“wordView”的 TextView 到布局?
正如@javdromero 在评论中所说,wordView
只是 TextView
视图对象的参考。我们只是在创建一个 TextView
对象。在其上设置文本并将其添加到 rootView
。 rootView
只是您示例中 LinearLayout
的参考名称。 None 如果引用名称将设置视图对象的 ID。 wordView
的范围仅限于执行 for 循环迭代时的每个循环,一旦索引递增,您就会将另一个视图对象引用分配给 wordView
.
所以我正在学习 Udacity Google 的 Android 基础课程。在 onCreate 方法中的一节课中,他们制作了字符串 ArrayList 并将值从“一”添加到“十”。之后,他们制作了 LinearLayout 变量,并使用 for 循环将 TextViews 添加到该布局。这就是整个代码的样子:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_numbers);
ArrayList<String> words = new ArrayList<>();
words.add("one");
words.add("two");
// ...
words.add("ten");
LinearLayout rootView = findViewById(R.id.root_view);
for (int i = 0; i < words.size(); i++) {
TextView wordView = new TextView(this);
wordView.setText(words.get(i));
rootView.addView(wordView);
}
}
他们没有解释,我们如何在 for 循环中添加十个同名“wordView”的 TextView 到布局?
正如@javdromero 在评论中所说,wordView
只是 TextView
视图对象的参考。我们只是在创建一个 TextView
对象。在其上设置文本并将其添加到 rootView
。 rootView
只是您示例中 LinearLayout
的参考名称。 None 如果引用名称将设置视图对象的 ID。 wordView
的范围仅限于执行 for 循环迭代时的每个循环,一旦索引递增,您就会将另一个视图对象引用分配给 wordView
.