2017-05-02 58 views
1

我有兩個radiodroup單選按鈕,最初都沒有選中。如果已經選中,我想取消選中單選按鈕。我已經嘗試過,但我無法做到這一點。當我選擇任何單選按鈕,那麼它不會改變第一次檢查狀態,如果我第二次選擇相同的單選按鈕,那麼它將改變它的狀態,如果我選擇其他單選按鈕,如果一個按鈕被選中,那麼它也不會改變狀態第一次,所有的按鈕都取消選中任何人都可以幫助我?我的代碼如下:如何取消選中radiobutton如果已經在radiogroup檢查

radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 
@Override 
public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) { 
RadioButton checkedRadioButton = (RadioButton)group.findViewById(checkedId); 
pus=""; 

boolean isChecked = checkedRadioButton.isChecked(); 
if(isChecked){ 
    checkedRadioButton.setChecked(false); 

}else{ 
    checkedRadioButton.setChecked(true); 

} 
} 
Toast.makeText(context, pus, Toast.LENGTH_SHORT).show(); 
} 
}); 








<RadioGroup 
    android:id="@+id/rdbt_group" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:padding="5dp" 

    android:gravity="center" 
    android:orientation="horizontal" > 

    <RadioButton 
    android:id="@+id/radio_no" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:background="@drawable/rbtn_selector" 
    android:button="@null" 
    android:gravity="center" 
    android:paddingBottom="5dp" 
    android:paddingLeft="10dp" 
    android:paddingRight="10dp" 
    android:paddingTop="5dp" 
    android:clickable="true" 
    android:textColor="@drawable/rbtn_textcolor_selector" 
    android:textSize="15sp" /> 

    <RadioButton 
    android:id="@+id/radio_yes" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:button="@null" 
    android:clickable="true" 
    android:textSize="15sp" 
    android:background="@drawable/rbtn_selector" 
    android:textColor="@drawable/rbtn_textcolor_selector" 
    android:padding="5dp" 
    android:gravity="center" 
    /> 


    </RadioGroup> 
+0

如果我沒看錯你想,如果用戶再次點擊相同的檢查單選按鈕,它應該明確的選擇,對不對? –

+0

是的,你是對的... –

+1

可能重複的[取消選中單選按鈕,如果已經檢查?](http://stackoverflow.com/questions/21132111/uncheck-radio-button-if-already-checked) – NarendraJi

回答

1

RadioGroup是選擇兩個選項之一的意思,你不應該干擾視圖的正常行爲。用戶強制選擇兩個選項之一。將性別視爲輻射組,可能有兩種或三種選擇你必須選擇其中之一強制。這可以通過簡單地在XML

<RadioGroup 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    app:layout_constraintTop_toTopOf="parent" 
    android:layout_marginLeft="16dp" 
    android:layout_marginTop="16dp" 
    app:layout_constraintLeft_toLeftOf="parent"> 

    <RadioButton 
     android:id="@+id/radioButton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="RadioButton" 
     tools:layout_editor_absoluteX="126dp" 
     tools:layout_editor_absoluteY="83dp"/> 

    <RadioButton 
     android:id="@+id/radioButton2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="RadioButton" 
     tools:layout_editor_absoluteX="172dp" 
     tools:layout_editor_absoluteY="127dp"/> 
    </RadioGroup> 

和活動課

radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() 
    { 
     @Override 
     public void onCheckedChanged(RadioGroup group, int checkedId) { 
      // checkedId is the RadioButton selected 
      // you can check if radiobutton is checked or unchecked here , do needful codes 
     } 
    }); 
0

我剛一個單選按鈕,我真的不想做一個單選按鈕組添加下面的代碼來實現。 onClick和if和else檢查不能手動檢查並取消選中它。我用onRadioButtonClick監聽器等閱讀了幾篇文章。

首先我試着交換到checkbox->相同的問題。然後,我嘗試了CheckedTextView,你知道什麼,它實際上像一個切換。所以基本上我然後添加一個單選按鈕,左側是空的,添加了checkedTextView旁邊(重疊),然後鏈接checkedTextView的onclick功能切換功能 - >

public void toggle(View view) 
{ 
    if(checkedTextView.isChecked()) 
    { 
     checkedTextView.setChecked(false); 
     actualRadioBtn.setChecked(false); 
    } 
    else 
    { 
     checkedTextView.setChecked(true); 
     actualRadioBtn.setChecked(true); 
    } 
} 

然後在你的功能,你檢查如果單選按鈕被選中,你可以簡單地使用

if(actualRadioBtn.isChecked()).... 
相關問題