自定义可以双击取消选中状态的RadioButton

开发需要在RadioGroup中的button为单选状态的同时,要求被选中的button再次点击取消选中状态。参考许多网上大神做法,发现一种简单完美的方法,记录于此

其实仅仅需要重写RadioButton的toggle()方法

public class ToggleRadioButton extends android.support.v7.widget.AppCompatRadioButton {

    public ToggleRadioButton(Context context) {
        this(context, null);
    }

    public ToggleRadioButton(Context context, AttributeSet attrs) {
        this(context, attrs, R.attr.radioButtonStyle);
    }

    public ToggleRadioButton(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    public void toggle() {
        setChecked(!isChecked());
        if (!isChecked()) {
            ((RadioGroup)getParent()).clearCheck();
        }
    }
}

其他方法与原生的一样使用即可。

你可能感兴趣的:(Android)