【发布时间】:2017-11-26 18:31:22
【问题描述】:
我生成了一个表格,每行末尾都有复选框。如果在该行中选中了复选框,我想对特定行中的所有值求和。因此,我需要检查是否在该特定行中选中了复选框。到目前为止,我有这个:
btnCalculate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
int sum = 0;
for(int i=0; i<rowNumber; i++) {
if(cb.isChecked()) {
sum = sum + rowSums[i];
}
}
txtResult.setText(String.valueOf(sum));
} catch (Exception e) { }
}
});
通常,我可以访问一行中所有单元格的值,并且可以将行内的所有这些值相加。但是,当我在 sum 中添加 if 语句时,我总是得到 0。我知道问题出在哪里。我知道我必须检查是否在该特定行中选中了复选框。但我不知道该怎么做。 顺便说一句,我还为行内的每个复选框设置了 ID。例如,第一行复选框的 ID 为 0,第二行的复选框 ID 为 1,依此类推。所以我只需要访问那个特定的复选框并检查它是否被选中。
编辑(已解决)
我将每个复选框都存储在 CheckBox 数组中。然后在我的 for 循环中,我调用了那个特定的 CheckBox,它运行良好。
private CheckBox cb;
private CheckBox [] cbs;
在for循环中:
cbs[i] = cb;
还有我的 for 循环:
for(int i=0; i<rowNumber; i++) {
if(cbs[i].isChecked()) {
sum = sum + rowSums[i];
}
}
【问题讨论】:
-
不要为您的视图使用 id = 0,因为这对 Android 来说意味着“没有 id”。
-
哦,谢谢你的提示。我现在要改变它。我只是在寻找一种方法,比如用复选框的 id 来获取特定的复选框
标签: android checkbox android-checkbox