从for循环中初始化视图

时间:2013-07-17 05:00:55

标签: java android android-xml

在我的XML中,我有大约136个复选框,我不想在相应的java文件中单独初始化每个复选框的痛苦,我想出了一个新的想法,使用for循环,但是android不要让我这样做。我在onCreate方法中尝试了代码。我是否需要宣布全球性的东西?我不知道这可能是一个愚蠢的问题!

以下是我的代码:

       CheckBox[] C = new CheckBox[136];
            for(int i=1;i<=136;i++){
               C[i] = (CheckBox) findViewById(R.id.checkBox[i]);
            }

我想知道这是否有效以及背后的原因。

错误: 类型不匹配:无法从CheckBox转换为CheckBox []

checkBox无法解析或不是字段

2 个答案:

答案 0 :(得分:2)

我不熟悉您的XML布局,但您可能不需要136个复选框。相反,您应该使用ListView。看看这个例子here

您得到的错误是因为该分配在语法上无效。您需要事先声明您的数组。实际分配值时,不需要再次指定类。例如:

CheckBox[] checkBoxes = new CheckBox[136];
...
checkBoxes[i] = //Whatever you want to assign this.

答案 1 :(得分:1)

好的,这是工作版

CheckBox[] C = new CheckBox[136];
// see thepoosh comment, you need to change to this:
for (int i = 0; i < 136; i++) {
   C[i] = (CheckBox) findViewById(checkBox[i]);
}

我不知道为什么你会遇到Type Mismatch。但R.java中没有任何数组。