RadioButton点击事件不起作用的坑

最近做开发用到了RadioButton, 并自定义了样式,把RadioButton的按钮去掉了,换成了自定义的点击效果,这时候点击看不见是否被选中的效果。于是问题来了,第一次点击没问题,第二次以后点击就失效了。


布局是这样的:

<RadioButton
    android:id="@+id/radiobtn"
    android:layout_weight="1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@null"
    android:button="@null"
    android:drawableTop="@drawable/radiobt_selector"
    android:gravity="center"
    android:text="@string/rbtn_text"
    android:textColor="@color/white"
    android:textSize="@dimen/24sp"/>

实现点击事件是这样的:

private RadioGroup.OnCheckedChangeListener mOnCheckedChangeListener = new RadioGroup.OnCheckedChangeListener()
{
    @Override
    public void onCheckedChanged(RadioGroup group, @IdRes int checkedId)
    {
        switch (checkedId)
        {
            case R.id.radiobtn:
                Log.e(TAG, "pc_radiobtn");
                break;
  
            default:
                break;
        }
    }
};
mRadioGroup.setOnCheckedChangeListener(mOnCheckedChangeListener);


后来仔细想想RadioButton是单选框,点击一次后,RadioButton已经被选中了,再点击的时候当然不会触发。解决方法就是在点击事件加一句代码:

case R.id.pc_radiobtn:
    pcRadioButton.setChecked(false); // 每次点击都设置false
    Log.e(TAG, "pc_radiobtn");
    break;


猜你喜欢

转载自blog.csdn.net/LikeSidehu/article/details/78440216