我不知道一种方法可以完全按照您的要求进行操作,但这里有两种选择:
1.创建一个Integers数组,并将数组的每个元素分配给不同的view id值
int[] ids = new int[arrayList.size()];
ids[0] = R.id.view0;
ids[1] = R.id.view1;
ids[2] = R.id.view2;
//...ids[n] = R.id.viewN; where n goes up to arrayList.size()
for (int i : ids){
((TextView)dialog.findViewById(ids[i])).setText(arrayList.get(i));
}
请注意,上面的方法有点失败,因为TextView
如果你想要更动态的东西,你必须为 each 设置一行:
2.TextViews
在布局 xml 中添加标签android:tag="prefix0"
,例如,添加到您的每个TextViews
. 在循环之前找到布局的父视图,然后findViewWithTag
在循环中使用该视图的方法for
。从您的代码中,我猜您正在使用Dialog
带有自定义布局 xml 的 a,因此您首先要找到它的父级:
ViewGroup parent = dialog.findViewById(R.id.parent); //or whatever the name of your parent LinearLayout/RelativeLayout/whatever is
String commonPrefix = "prefix"; //or whatever you've tagged your views with
for (int i=0; i<arrayList.size(); i++){
TextView t = (TextView) parent.findViewWithTag(commonPrefix+i);
t.setText(arrayList.get(i));
}