2010-07-26 5 views
5

레이아웃에 RadioButton을 추가합니다.라디오 버튼이 상태를 토글하지 않습니다.

처음에는 선택되어 있지 않습니다. 클릭하면 에뮬레이터에 표시된대로 검사됩니다. 하지만 다시 클릭하면 다시 확인되지 않습니다.

<RadioButton android:checked="false" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/option1"/> 
+3

그러나 라디오 버튼이 * 작동하는 방식입니다. –

답변

3

라디오 체크 박스를 하나만 사용하는 경우 체크 박스 또는 토글 버튼을 사용해야합니다.

http://developer.android.com/resources/tutorials/views/hello-formstuff.html

스크롤 아래 체크 박스를 확인하고 버튼을 전환합니다.

일반적으로 하나 이상의 라디오가있는 경우 라디오를 사용할 때 선택하십시오. 쉬운, 매체, 하드처럼.

+0

내 자신의 컨트롤에서 'android 's checkboxStyle'을 어떻게 지정할 수 있습니까? – michael

1

개념적인 질문입니다. 라디오 버튼을 사용하면 여러 옵션 (다른 라디오 버튼으로 표시) 중에서 선택할 수 있습니다. 일반적으로 초기 상태에서 기본값으로 선언하지 않으면 버튼을 검사 할 수 없더라도 그룹에서 하나의 라디오 버튼을 항상 확인합니다. 즉, 하나의 버튼이 같은 그룹에 다른 라디오 버튼이 없으면 버튼 하나만 상태를 전환 할 수 없습니다. 하나의 옵션 만있는 경우 선택해야합니다.

바이너리 토글을 원할 경우 대신 확인란을 사용하는 것이 좋습니다.

3

당신은 다음과 같이 "RadioGroups"을 추가로 작업하는 1 개 이상의 라디오 단추가있는 경우 :

<RadioGroup android:id="@+id/group1" android:layout_width="fill_parent" 
     android:layout_height="wrap_content" android:orientation="vertical"> 
     <RadioButton android:id="@+id/radio1" android:text="madras" 
      android:layout_width="wrap_content" android:layout_height="wrap_content" /> 
     <RadioButton android:id="@+id/radio2" android:text="bombay" 
      android:layout_width="wrap_content" android:layout_height="wrap_content" /> 
    </RadioGroup> 

example에서 보라를, 나는이 라디오에 대한 명확한 아이디어를 만들 것입니다 확신 버튼.

Android Developer - Form Stuff page도 참조하십시오.

1

솔루션을 선택 설정 [참/거짓] 당신은 라디오 버튼의 모양과 체크 박스의 동작을 찾고 있다면 자바 코드

ToggleButton t = (ToggleButton) findViewById(R.id.toggle_button); 
t.setChecked(true); 
// t.setChecked(false); 
3

중간, 당신은 체크 박스에 XML 스타일로 전달할 수 있습니다.

<CheckBox android:checked="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/option1" 
     style="@android:style/Widget.DeviceDefault.Light.CompoundButton.RadioButton/> 

이의 (a RecyclerView에 라디오 버튼을 사용하여 예.) 어떤 경우에 유용 할 수 있지만 사용자가 라디오 버튼이 어떤 방식으로 작동 할 것으로 예상하기 때문에주의해야합니다. 사용자가 여러 항목을 선택할 수 있도록 허용하는 경우 위의 주석에서 설명한대로 일반 확인란을 사용해야합니다.

희망이 도움이됩니다.

1

SO를 많이 검색 한 후 좋지 않지만 괜찮은 해결 방법을 찾았습니다.

보유하고있는 각 라디오 버튼에 대해 boolean 변수를 선언하고 false으로 초기화하고 클릭 할 때마다 변수 및 RadioButton의 상태를 변경하십시오.


  1. boolean isToggledRadio1 = false; 
    RadioButton radio1 = (RadioButton) findViewById(R.id.radiobutton1); 
    radio1.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View v) { 
         isToggledRadio1 = !isToggledRadio1; //Switch boolean value 
         RadioButton rb = (RadioButton)v; 
         rb.setChecked(isToggledRadio1); 
        } 
    }); 
    

    나는이 체크 박스를 사용하는 것이 이상적 알고 있지만, 누군가가 라디오 버튼을 필요로하는 경우, 다음 그들은 라디오 버튼이 필요합니다.

  2. 는 기본적으로 두 번 사용자가 버튼을 클릭 할 때마다 버튼을 토글로 이것은, 최적의 솔루션 아니라, (하나의 기본 동작은 두 번째 시간이 온 클릭 함수 내에서이다) '당신이 만약 그렇다면 OnCheckedChangeListener을 사용하면 동일한 클릭에 대해 두 번의 전화가 걸릴 수 있습니다.

  3. 체크 박스의 android:button을 xml 템플릿으로 다른 드로어 블로 변경하는 또 다른 해결 방법이 있지만 좀 더 복잡하고 상태에 2 개 이상의 파일이 더 필요합니다.

+1

그것은 나를 위해 작동합니다. 감사 – Vrajesh

관련 문제