访问for循环中的一系列控件

时间:2014-08-10 09:55:50

标签: java android

我有一个包含一些数字的数组:

int[] IDs = new int[] { 2, 5, 6, 11, 15};

布局资源中有许多TextView:

TextView1;
TextView2;
TextView3;
TextView4;
TextView5;
TextView6;

和......

如何在for循环中访问它们(例如)改变它们的文本,如下所示:

for(int i=0;i<IDs.length;i++){

 TextView[i].setText = "something";

}

问题:Eclipse无法识别“TextView [i]”。

注意:我想更改那些名称以ID数组中的一个数字结尾的TextView文本。

2 个答案:

答案 0 :(得分:2)

你应该这样做,假设IDs对应于文本视图的id,如果不是,你必须创建id的数组

int[] IDs = new int[] { R.id.textView1, R.id.textView2, R.id.textView3, R.id.textView4, R.id.textView5};

TextView textView = (TextView) rootView.findViewById(IDs[i])
textView.setText = "something";

如果是活动,请删除rootView.

答案 1 :(得分:0)

如果您有给定的布局,则可以迭代布局中的子项。 只需将所有TextView放在一个布局中即可。

例如:

    LinearLayout la = findViewById(R.id.myLayout);
    for (int i = 0; i < IDs.length; i++){
        if (la.getChildAt(i) instanceof TextView){
            TextView tv = (TextView) la.getChildAt(i);
        }
    }

编辑: 如果您的布局中有其他元素,那么计算找到的TextView的数量可能会更好。否则它将找不到所有TextView,如果我们只计算IDs.length。