如何检查特定行中是否选中复选框?
我生成了一个表格,每一行末尾都有复选框。如果在该行中选中该复选框,我想对特定行中的所有值进行求和。因此,我需要检查该特定行中的复选框是否被选中。到目前为止,我有这样的:如何检查特定行中是否选中复选框?
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) { }
}
});
通常情况下,我可以访问withing行中的所有单元格的值,我能总结所有这些值的行内。但是,当我在总和内添加if语句时,我总是得到0.我知道问题是什么。我知道我必须检查复选框是否在特定行中被选中。但我不知道该怎么做。 顺便说一下,我还设置了行内每个复选框的ID。例如,第一行复选框的ID为0,第二行为1,依此类推。所以我只需访问特定的复选框并检查它是否被选中。
EDIT(解决) 我存储在CheckBox
阵列内的每个复选框。然后在我的循环中,我调用了特定的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];
}
}
,这样,当任何复选框被选中,您可以创建复选框监听器/选中添加/删除相应的数据进行计算。
OR:
你可以给所有的复选框的IDS,然后将IDS保存在类像一个数组:
//as a class attribute
Int[]checkboxesIds = new array[] {ids in xml};
//in the loop
CheckBox ch = findViewById(ids[i])
ch.ischecked();
但其错误的大数据。
实际上, 'CheckBox ch = findViewById(ids [i])' 部分可以为我工作,但我仍然不知道如何获得该特定行中的复选框。我看起来像 'cb.getCheckbox(id)' 它选择我需要的复选框。 – rawsly
你用过tableview吗?是如此尝试使用此:https://stackoverflow.com/questions/30191264/javafx-tableview-how-to-get-the-row-i-clicked –
请勿对您的视图使用id = 0,因为这意味着Android的“无身份证”。 – Ridcully
哦,谢谢你的提示。我现在要改变它。我只是寻找一种方法喜欢抓住具体的复选框与复选框的ID – rawsly