2017-11-25 5 views
0

모든 행 끝에 체크 박스가있는 테이블을 생성했습니다. 해당 행에서 선택란을 선택하면 특정 행의 모든 ​​값을 합산하려고합니다. 따라서 특정 행에서 확인란을 선택했는지 확인해야합니다. 지금까지 나는이 있습니다특정 행에 체크 박스가 선택되어 있는지 확인하는 방법은 무엇입니까?

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이고 두 번째 행의 ID는 1 등입니다. 그래서 나는 그 특정 체크 박스에 액세스하고 체크되어 있는지 확인해야합니다.

EDIT (SOLVED)는 I는 CheckBox 어레이 내부 각 체크 박스를 저장. 그럼 내 for 루프에서, 나는 그 특정 CheckBox을 불렀다. 그리고 그것은 잘 동작했다. for 루프에서

private CheckBox cb; 
private CheckBox [] cbs; 

:

cbs[i] = cb; 

그리고 내 루프 : 모든 확인란이 선택 될 때, 그래서 당신은 체크 박스에 대한 리스너를 만들 수 있습니다

for(int i=0; i<rowNumber; i++) { 
    if(cbs[i].isChecked()) { 
     sum = sum + rowSums[i]; 
    } 
} 
+0

Android에서 'ID가 없음'을 의미하므로보기에 id = 0을 사용하지 마십시오. 팁을 주신 덕분에 – Ridcully

+0

. 나는 그것을 지금 바꿀 것이다. 나는 체크 박스 ID를 가진 특정 체크 박스를 잡는 것과 같은 방법을 찾고있다. – rawsly

답변

1

/체크되지 않은 추가/계산에 해당 데이터를 삭제하십시오.

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

하지만, 대량의 데이터에 대한 잘못을 :

OR:

당신은 같은 클래스의 배열의 ID를 저장하는 모든 체크 박스 ID를 부여 할 수 있습니다.

+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 –

관련 문제