RadioButton点击事件不起作用的坑

来源:互联网 发布:高级数据库系统与实现 编辑:程序博客网 时间:2024/06/07 03:06

最近做开发用到了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;


阅读全文
0 0
原创粉丝点击