如何检查特定行中是否选中复选框?

如何检查特定行中是否选中复选框?

问题描述:

我生成了一个表格,每一行末尾都有复选框。如果在该行中选中该复选框,我想对特定行中的所有值进行求和。因此,我需要检查该特定行中的复选框是否被选中。到目前为止,我有这样的:如何检查特定行中是否选中复选框?

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]; 
    } 
} 
+0

请勿对您的视图使用id = 0,因为这意味着Android的“无身份证”。 – Ridcully

+0

哦,谢谢你的提示。我现在要改变它。我只是寻找一种方法喜欢抓住具体的复选框与复选框的ID – rawsly

,这样,当任何复选框被选中,您可以创建复选框监听器/选中添加/删除相应的数据进行计算。

OR:

你可以给所有的复选框的IDS,然后将IDS保存在类像一个数组:

//as a class attribute 
    Int[]checkboxesIds = new array[] {ids in xml}; 
    //in the loop 
    CheckBox ch = findViewById(ids[i]) 
    ch.ischecked(); 

但其错误的大数据。

+0

实际上, 'CheckBox ch = findViewById(ids [i])' 部分可以为我工作,但我仍然不知道如何获得该特定行中的复选框。我看起来像 'cb.getCheckbox(id)' 它选择我需要的复选框。 – rawsly

+0

你用过tableview吗?是如此尝试使用此:https://stackoverflow.com/questions/30191264/javafx-tableview-how-to-get-the-row-i-clicked –