2012-05-11 127 views
0

爲了外觀和間距的目的,我需要使用單選按鈕作爲切換按鈕,但對於我的生活而言,無法改變其狀態。現在是否有人可以讓單個單選按鈕在其檢查狀態之間切換?我不知道是否有一種方法可以通過使用無線電組或者一些if/else語句組合來欺騙它(儘管當我嘗試這樣做時,它似乎認爲它已被檢查,即使它不是)。或者也許讓一個切換按鈕看起來像一個單選按鈕?如何將單選按鈕用作切換按鈕(Android)?

+0

一個簡單的方法,檢查這個答案:https://stackoverflow.com/a/ 47023965/3758439 也可以使用xml將複選框方形按鈕更改爲圓形按鈕,這樣就有類似於SO的解決方案。 – George

回答

2

RadioButton有幾種方法可以讓你改變它的狀態。

toggle()

setChecked(boolean b)

你提到的「切換按鈕」控件的名字叫做CompoundButton由系統。 RadioButton實際上是擴展了CompoundButton。所以它可以訪問所有相同的方法。

+2

然而,根據開發人員的頁面,使用帶單選按鈕的toggle()只會檢查它,如果它已被選中則不會取消選中它。我還沒有嘗試過,並希望在我做之前有另一個想法。 – rphello101

+0

好吧,但它提供了getChecked()和setChecked(布爾b)你可以使用這些組合來切換,無論狀態是什麼......在Android RadioButton方面是一個切換按鈕。它將做任何切換按鈕都可以。 – FoamyGuy

+0

我已經嘗試了所有可能的組合,我可以想到,我無法獲得它來切換狀態。它會保持檢查狀態,或讓我取消選中它,但不要重新檢查它。 – rphello101

0

剛剛創建自己的android.support.v7.widget.AppCompatRadioButton類並覆蓋叫toggle()

這是卓有成效的方法:

@Override 
public void toggle(){ 
    setChecked(!isChecked()); 
}