2012-10-20 3 views
0

루핑을 적용하여 여러 확인란을 만들었습니다.안드로이드에서 다이내믹하게 생성 된 체크 박스에서 onclick을 관리하는 방법

for(int l=0;l<len;l++) 
{ 
chkBox = dynamicUiComponents.myCheckBox(context, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT), 100+i, "Unchecked", opts[l]); 
myLayout.addView(chkBox); 
} 

모든 확인란이 표시됩니다. 그러나 해당 확인란에 setOnCheckedChangeListener (l)을 적용하면 마지막으로 추가 된 확인란 텍스트 만 프린터입니다. 그 루프 때마다, 나는 chkBox 변수에 새로운 객체 참조를 제공하기 때문에. Chechbox를 클릭하는 방법을 식별하는 방법은 여기에 있습니다.

for(int id=0;id<5;id++) { 
chkBox = new CheckBox(context); 
chkBox.setTag(id); 
myLayout.addView(chkBox); 
} 

을하고 사용할 수 있습니다 :

+0

나는 이것을 매우 이해하기 힘듭니다. 다시 말하면 더 좋은 결과를 얻을 수 있습니다. – mango

답변

1

당신의 코드에서, 당신은 CheckBoxes의 배열을 작성하지 않은, 당신은 하나를 만들었습니다. 따라서 setOnCheckChangedListener(I)을 사용하면 checkBox을 참조하지 않습니다. 어느 쪽이든 당신은 루프 내부의 리스너를 설정하거나 각 나중에 그것을 참조하고 리스너 설정하는 고유 ID 부여 : 다음

for(int l=0;l<5;l++) 
{ 
    chkBox = new CheckBox(context); 
    myLayout.addView(chkBox); 
    chkBox.setTag(""+l); 
    chkBox.setOnCheckChangeListener(new ...(){ 
     int x = Integer.ValueOf(chkBox.getTag()); 
     //do whatever you want to do here 
    }); 
} 
+0

정확한 코드가 아닙니다 ..... – Maddy

+0

무엇을 의미합니까? –

+0

문제가 청취자를 설정하는 것이 아닌 경우, View.setId를 사용하여 ID를 할당하거나 Jamshid 또는 rahul 응답 에서처럼 View.setTag를 사용할 수 있습니다. –

0

당신이 태그 ID를 추가 할 수 있습니다

Integer i = (Integer) chkBox.getTag(); 
+0

나는 다음과 같이하고있다 : for (int l = 0; l Maddy

+0

태그를 통해 setOnCheckedChangedListener()를 적용하는 방법을 알려주십시오. 나는 그것이 효과가있을 것이라고 생각한다. – Maddy

0

을 확인란을 선택하고이 리스너를 설정하면 사용자가 리스너를 구현 한 다음 이벤트가 트리거 될 때 원하는대로 수행해야합니다.

+0

이 코드는 루프를 사용하여 체크 박스를 만듭니다 : chkBox = dynamicUiComponents.myCheckBox (context, new LayoutParams (LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT), 100 + i, "선택 안함", opts [l]); myLayout.addView (chkBox); – Maddy

+0

내 업데이트 실제 코드를 확인하십시오 ... – Maddy

+0

아무도 클릭하지 않아도 텍스트가 확인란에 해당되게하고 싶습니다. – Maddy

0

당신은 각각 다른 태그를 설정할 수 있습니다 시도

for(int l=0;l<5;l++) { chkBox = new CheckBox(context); 
chkBox.setOnCheckChangedListener(
//your implementation 
); 
myLayout.addView(chkBox); } 
관련 문제