我声明了多个TextViews,并将它们命名为title2,title3,...,title9和txt2,txt3,...,txt9。
我下面的if语句填充TextViews title2txt2并设置它们的可见性,具体取决于某些数组中给定位置的数据。

        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];


然后您可以遍历所有这些方式,无论是forwhileforeach循环还是其他方式。只需用TextView访问说第三个标题titles[2](因为数组索引从0开始,所以第0个索引是第一个元素)。

10-07 19:00