我在
Android中使用CheckBox视图.我想在检查时更改它的颜色.现在它是默认的深绿色,当它被检查,我想将它改为不同的东西,当没有检查时,只是默认颜色.
这是我的代码:
CheckBox c = new CheckBox(this); c.setId(View.generateViewId()); c.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) { if(buttonView.isChecked()) { buttonView.setBackgroundColor(Color.rgb(64,131,207)); } if(!buttonView.isChecked()) { buttonView.setBackgroundColor(Color.WHITE); } } });
问题是它没有改变正确的事情.关于如何改变这种颜色的任何想法?
解决方法
您是否尝试创建选择器并将此选择器分配给CheckBox,例如:
//drawable file called cb_selector <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:drawable="@drawable/checked" /> <item android:state_checked="false" android:drawable="@drawable/unchecked" /> </selector>
<CheckBox android:id="@+id/myCheckBox" android:text="My CheckBox" android:button="@drawable/cb_selector" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
@ drawable / checked和@ drawable / unchecked是你的复选框的两个图像,所以你可以放一个你想要的颜色
android:buttonTint="@color/YOUR_CHECKMARK_COLOR_HERE"