2016-09-17 10 views
0

私は、画面上に単一のラジオボタンがあるシナリオを持っています。チェックボックスのように動作させたいので、ユーザーはそのラジオボタンを選択または選択解除することができます。ユーザーがラジオボタンをクリックすると、そのラジオボタンの選択を解除することはできません。レイアウト上で単一ラジオボタンを処理する方法

ラジオボタンのチェックを外す方法を教えてください。

ラジオボタンXML

<RadioButton 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:text="Remember me" 
    android:layout_gravity="center_horizontal" 
    android:layout_marginTop="20dp" 
    android:textSize="14sp" 
    android:fontFamily="sans-serif-light" 
    android:layout_weight="1" 
    style="@style/radionbutton" 
    android:paddingLeft="10dp" 
    android:textColor="@color/grayCheckoutFont" 
    /> 
+2

ラジオボタンの代わりにチェックボックスを使用すると、ラジオボタンは、クイズアプリのような複数のオプションから1つのオプションを選択するために使用されます。設定を有効または無効にする場合はいつでもチェックボックスが使用されます –

+0

ありがとうございました! :) – Kirmani88

+0

同じ結果を得るカスタムドロアブルでチェックボックスを使用する –

答えて

1
RadioButton rb; 

rb = (RadioButton) findViewById(R.id.rb); 


if(rb.isChecked()) 
{ 
    \\ is checked set it unchecked here 
    rb.setChecked(false); 
} 
else 
{ 
    \\ not checked 
} 

これに対処するための最良の方法は、ラジオボタンは、このような状況では理想的ではないとして提供チェックボックスウィジェットを使用することです

1

それを試してみてください。それでも、これはかなり達成可能です。 Preetika Kaurのコードは問題ありませんが、有効にするとすぐにRadioButtonのチェックを外します。しかし、これも簡単に回避できます。 ここにButterknifeを使用した例があります。

int i = 0; 
    @BindView(R.id.btn) RadioButton btn; 

    @OnClick(R.id.btn) 
    public void go(RadioButton btn) { 
     if(i == 0){ 
     i++; 
     btn.setChecked(true); 
     }else{ 
     i = 0; 
     if(btn.isChecked()){ 
      btn.setChecked(false); 
     }else{ 
      // Not Checked 
     } 
     } 
    } 


/* 
    Other Code 
*/ 

@Override public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.simple_activity); 
    ButterKnife.bind(this); 
    // TODO Make App 
    } 
関連する問題