如何以编程方式更改复选框的文本和框颜色?

How to change the text and the box color of my checkbox programmatically?

我构建了一个带有多计算系统的应用程序,它需要填写所有内容才能得到结果,所以如果用户在没有选择的情况下离开 checkbox,我会通过制作文本和方框来通知他checkbox 更改为 "Red" 喜欢link中的图片:

https://s15.postimg.org/kej9uc457/checkbox.jpg

如果我们假设我的复选框是 "Yes",那么如何为这个和另一个制作代码以重新运行它回到原来的那个?


我可以制作自定义 xml 文件,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<item android:drawable="@drawable/option_unselected" android:state_checked="false" android:color="#ff0000"/>
<item android:drawable="@drawable/option_selected"   android:state_checked="true"/>

我知道如何制作检查条件:

if(yes.isChecked())
        {check.setButtonDrawable(mContext.getResources().getDrawable(
                R.drawable.custom_checkbox));}
else
        {check.setButtonDrawable(mContext.getResources().getDrawable(
                R.drawable.custom_checkbox));}

但在这种情况下我需要两样东西:

1- 复选框图像类似于 android 上的默认图像,然后将其设为框 "red"

2- 我需要一个代码来使它 return 恢复到带有黑色文本和方框的默认值

, 那我该怎么做呢?或者如果有人对我的问题有其他解决方案?

可以创建另一组名为 custom_red_checkbox.xml

的 xml
<?xml version="1.0" encoding="utf-8"?>
<item android:drawable="@drawable/option_unselected_red" android:state_checked="false" android:color="#ff0000"/>
<item android:drawable="@drawable/option_selected"   android:state_checked="true"/>

并将您的代码修改为

if(yes.isChecked())
        {check.setButtonDrawable(mContext.getResources().getDrawable(
                R.drawable.custom_checkbox));}
else
        {check.setButtonDrawable(mContext.getResources().getDrawable(
                R.drawable.custom_red_checkbox));}