0

在我的 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[]

复选框无法解析或不是字段

4

2 回答 2

2

我不熟悉您的 XML 布局,但您可能不希望其中有 136 个复选框。相反,您应该使用ListView. 在此处查看此示例。

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

CheckBox[] checkBoxes = new CheckBox[136];
...
checkBoxes[i] = //Whatever you want to assign this.
于 2013-07-17T05:17:52.023 回答
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]);
}

我不知道你为什么会得到类型不匹配。但不会有任何数组R.java

于 2013-07-17T06:25:31.013 回答