【问题标题】:How to iterate values in statements?如何迭代语句中的值?
【发布时间】:2016-09-13 21:52:16
【问题描述】:

我已经声明了一些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。

有没有办法在这个代码块的语句中创建一个自动递增这些数字的迭代语句,以便它简单地迭代代码块以分别填充 TextView 的 title2-9 和 txt2-9?

我想可能会使用:

int counter = 2;
while (counter < 10) {
...
counter++;
}

Pattern 一起,但我是编程新手,老实说,我真的不知道Pattern 到底是什么,也不知道是否和/或如何使用它。

您的帮助将不胜感激。提前致谢!

【问题讨论】:

    标签: java android loops arraylist textview


    【解决方案1】:

    您可以通过声明两个 TextView 数组而不是一个一个声明其中的 10 个来做到这一点。像这样的:

    TextView [] titles = new TextView[10];
    TextView [] otherTextViews = new TextView[10];
    

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

    【讨论】:

    • 首先,非常感谢您花时间帮助我。好吧,我想我知道该怎么做。那么数组的名称替换呢,因为 title2 textview 需要从 titleArray2 array 获取一个值,而 txt2 textview 需要从 txtArray2 array 获取一个值等等?
    • 是的,我知道了,谢谢。我的意思是变量titleIdtxt。我如何让它迭代以从 titleArray2 中获取值,然后 titleArray3 到 9 和 txtArray2,然后 txtArray3 到 9?
    • 有了 Vucko 的解决方案,您就不需要这个了。与其将其引用为 txtArray2 或 txtArray3,不如将其作为 txtArray[1] 或 txtArray[2] 访问。
    • @InferKNOX 正是 MobileDeveloper 所说的。您将有一个循环,并将它们引用为titles[2], titles[3], ..., titles[8](这是针对 3-9 的标题(正如我所说,索引的差异从 0 开始)。
    • 啊,我明白了!我还从titleArray2txtArray2titleType2 的整数数组中创建了字符串数组,以与TextView 数组相关联,并且一切正常。非常感谢你们!
    猜你喜欢
    • 2022-11-27
    • 2020-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多