查找以编程方式创建的 TextView?
Find TextView which was created programmatically?
我怎样才能在相同的 class 上找到那些 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);
}
}
您可以创建此 TextView 的成员变量,然后可以在此 class 中使用,或者您可以在 LinearLayout 上使用 findViewById()。
好吧,你不一定需要在这里使用id我告诉你两种方法:
1-
TextView textView = (TextView) linearLayout.findViewById(i);
i是你之前设置的1到5
2-
TextView textView = (TextView) linearLayout.getChildAt(i);
i这里是set item的个数表示0是第一个使用addView()方法添加的textView
使用正常的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
}
}
}
我怎样才能在相同的 class 上找到那些 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);
}
}
您可以创建此 TextView 的成员变量,然后可以在此 class 中使用,或者您可以在 LinearLayout 上使用 findViewById()。
好吧,你不一定需要在这里使用id我告诉你两种方法: 1-
TextView textView = (TextView) linearLayout.findViewById(i);
i是你之前设置的1到5
2-
TextView textView = (TextView) linearLayout.getChildAt(i);
i这里是set item的个数表示0是第一个使用addView()方法添加的textView
使用正常的findViewById()
方法。您为 TextView 提供了从 1 到 5 的唯一 ID,因此您可以通过向 findViewById()
.
但是,您可能不应该这样做,并且您不应该拥有全局 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
}
}
}