如何在同一个类中找到那些TextView的另一个函数?
创建后,我将使用setText()
,serBackgroundColor()
..
此代码部分位于CreateDesign()
和此功能calling onCreate()
上:
public class MainActivity extends AppCompatActivity {
private LinearLayout linearLayout;
private TextView textView;
public void CreateDesign(){
linearLayout = (LinearLayout) findById(R.id.linearLayout);
for(int i = 1; i <= 5; i++){
textView = new TextView(this);
textView.setId(i);
textView.setText(i + ". TextView");
linearLayout.addView(textView);
}
}
答案 0 :(得分:2)
您可以创建此TextView的成员变量,然后可以在此类中使用它,也可以在LinearLayout上使用findViewById()。
答案 1 :(得分:2)
嗯,您在这里不一定需要使用id,我向您展示了两种方法: 1-
TextView textView = (TextView) linearLayout.findViewById(i);
i是您在1到5之前设置的值
2-
TextView textView = (TextView) linearLayout.getChildAt(i);
我这里是设置项的数量,意味着0是使用addView()方法添加的第一个textView
答案 2 :(得分:1)
使用常规的findViewById()
方法。您为TextView提供了1到5的唯一ID,因此可以通过向findViewById()
提供1-5来找到这些TextView。
但是,您可能不应该这样,也不应该有一个全局textView
变量(它只会保存对最后创建的TextView的引用)。
相反,尝试使用ArrayList并将所有TextView添加到其中。然后,您无需为他们提供不符合标准的ID。
public class MainActivity extends AppCompatActivity {
private LinearLayout linearLayout;
private ArrayList<TextView> textViews = new ArrayList<>();
public void CreateDesign(){
linearLayout = (LinearLayout) findById(R.id.linearLayout);
for(int i = 1; i <= 5; i++) {
TextView textView = new TextView(this);
textView.setText(i + ". TextView");
linearLayout.addView(textView);
textViews.add(textView); //add it to the ArrayList
}
}
}