我声明了多个TextViews
,并将它们命名为title2,title3,...,title9和txt2,txt3,...,txt9。
我下面的if
语句填充TextViews
title2
和txt2
并设置它们的可见性,具体取决于某些数组中给定位置的数据。
if (title2Txt.get(position) != null) {
int titleId = context.getResources().getIdentifier(titleArray2.get(position),
"string", context.getPackageName());
String txt = txtArray2.get(position);
title2.setVisibility(View.VISIBLE);
title2.setText(titleId);
txt2.setVisibility(View.VISIBLE);
txt2.setText(txt);
if (titleTypeArray2.get(position) == 0) {
title2.setTextColor(Color.parseColor("#9e9e9e"));
} else {
title2.setTextColor(Color.parseColor("#9ccc65"));
}
} else {
title2.setVisibility(View.GONE);
txt2.setVisibility(View.GONE);
}
现在,我必须对所有相应的
TextViews
(从2到9)执行此确切的代码块,只有在每种情况下,数字的值(在任何地方看到“ 2”的位置)都是迭代的,即2,然后3 ,然后是4到9。有没有一种方法可以使该代码块的语句中的这些数字自动递增,从而使它简单地遍历该块以分别填充TextViews title2-9和txt2-9?
我想到可能使用:
int counter = 2;
while (counter < 10) {
...
counter++;
}
和
Pattern
一起使用,但是我是编程的新手,老实说,我真的不知道Pattern
到底是什么,也不知道是否和/或如何使用它。您的帮助将不胜感激。提前致谢!
最佳答案
您可以通过声明两个TextView
数组而不是一一声明10个数组来实现。像这样:
TextView [] titles = new TextView[10];
TextView [] otherTextViews = new TextView[10];
然后您可以遍历所有这些方式,无论是
for
,while
,foreach
循环还是其他方式。只需用TextView
访问说第三个标题titles[2]
(因为数组索引从0开始,所以第0个索引是第一个元素)。