最近做开发用到了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({
后来仔细想想RadioButton是单选框,点击一次后,RadioButton已经被选中了,再点击的时候当然不会触发。解决方法就是在点击事件加一句代码:
@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);
case R.id.pc_radiobtn:
pcRadioButton.setChecked(false); // 每次点击都设置false
Log.e(TAG, "pc_radiobtn");
break;