在我的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无法解析或不是字段
答案 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
中没有任何数组。