2011-01-12 7 views
0

내 활동에 동적 체크 박스를 추가하는 중입니다. 그러나 초보자 인 나는 기울일 수있어 체크 박스를 추가하고 제거 할 수있는 기초를 얻는다. 여기에 내 코드 ....Android 동적 체크 박스 문제

개인 무효 createCheckbox() {

for(int i=0; i<5; i++){ 
    cb = new CheckBox(this); 
    ll.addView(cb); 
    cb.setText("Test"); 
} 

ll.addView(submit); 

    submit.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
     for(int i = 0; i < 5; i++) { 
      ll.removeView(cb); 
     } 
     ll.removeView(submit); 
     Questions(); 
}});  

} LL은 linerlayout 객체입니다. 아이디어는 코드가 실행되고 5 개의 체크 박스가 나타나고 사용자가 제출 버튼을 클릭하면 제거됩니다. 현재 상자가 표시되지만 제출 버튼을 누르면 5 개 중 하나만 제거됩니다. 내가 뭘 잘못하고 있는지 이해가 안돼?

아이디어는 데이터베이스의 값에 따라 체크 박스가 생성되며이 값이 4, 5 또는 15 일 수있는 체크 박스가 미리 정의되지 않은 이유를 변경할 수 있다는 것입니다. 각 확인란은 고유 식별자를 가지고 있기 때문에 데이터베이스에서 텍스트를 추가해야하기 때문에 개별적으로 식별해야하므로 사용자가 몇 개의 버튼을 선택하면이 테이블을 별도의 테이블에 저장해야합니다. 매우 혼란 !!! 도움!

답변

4

동일한 변수를 다시 사용하지 않고 해당 확인란의 참조를 어딘가에 저장해야합니다.

CheckBox[] cbs = new CheckBox[5]; 
for(int i=0; i<5; i++){ 
    cbs[i] = new CheckBox(this); 
    ll.addView(cb); 
    cbs.setText("Test"); 
} 

ll.addView(submit); 

    submit.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
     for(int i = 0; i < 5; i++) { 
      ll.removeView(cbs[i]); 
     } 
     ll.removeView(submit); 
     Questions(); 
}}); 
+0

우수함, 당신은 생명의 은인입니다! 나는 그것을 해결하려고 노력하는 데 많은 시간을 보냈다. – Beginner