2012-03-28 3 views
1

내 특정 응용 프로그램의 경우 라디오 버튼을 터치하여 확인란을 선택하거나 해제 할 수 있습니다. 그러나, 나는 그들의 그룹 내에서 상호 배타적 인 radiobuttons을 필요로한다. 64 개의 버튼과 8 개의 그룹이 있으므로 체크 박스를 사용하지 않고 수동으로 토글 기능을 프로그래밍하고 싶지 않습니다. 라디오 버튼과 함께 onTouchListener()을 사용할 수 있습니까? 이것을 달성 할 방법이 있습니까? 사전에 지원해 주셔서 감사합니다.RadioButton-CheckBox Combo

+0

RadioButton은 정의에 따라 그룹 내에서 상호 배타적입니다. 네가 여기서 묻고있는 걸 이해하지 못한다. – Squonk

+0

라디오 버튼을 터치하고 확인란을 선택 취소 할 수 있기를 원합니다. – Cameron

+0

그러나 라디오 버튼 그룹을 사용하는 경우 하나 또는 다른 버튼이 항상 활성화되어 있어야합니다. 버튼을 사용할 수 없게하는 올바른 방법은 '선택 항목 없음'또는 이와 비슷한 그룹에 추가 라디오 버튼을 만드는 것입니다. – Squonk

답변

1

확인란이나 라디오 버튼이 아닌 UI 패러다임을 찾고 있습니다. 최선의 방법은 체크 박스를 사용하고 그 위에 상호 배타성을 구현하는 것입니다. 예를 들어, 다른, 더 복잡한 대답하는 것

if (isChecked) { 
     int myGroup = (Integer) buttonView.getTag(); // Define the group in the view's tag 
     for (int id: groups.get(myGroup)) { 
     if (id != buttonView.getId()) ((CompoundButton) findViewById(id)).setChecked(false); 
    } 

당신은 그룹당 버튼 ID를 모두 열거 할 수 있다면, 당신은 같은, 일반적으로 코드를 작성할 수

myCheckbox1.setOnCheckChangedListener(new OnCheckChangedListener() { 
    @Override 
    public void onCheckChanged(CompoundButton buttonView, boolean isChecked) { 
    if (isChecked) { 
     myCheckbox2.setChecked(false); 
     myCheckbox3.setChecked(false); 
     myCheckbox4.setChecked(false); 

     // start playback 
    } else { 
     // stop playback 
    } 
    } 
); 

주, 자신 만의 UI 위젯을 만들고 원하는 의미를 부여하십시오. 그것은 내가 여기서 설명 할 수있는 범위가 아닙니다.

+0

나는 크게 도움을 주셔서 감사하지만, 내가 언급했듯이, 나는 64 개의 버튼을 8 개의 그룹으로 나누어 가지고있다. 수동으로하는 것은 매우 불편할 것입니다. – Cameron

+0

수동으로하지 않아도됩니다. 배열에 단추가 있으면 선택한 단추를 제외한 모든 단추를 끌 수 있습니다. 그것은 몇 줄의 코드입니다. 상관없이, 당신은 라디오 버튼으로보고있는 것을 얻지 못할 것입니다. –

관련 문제