单击和取消单击时如何更改复选框颜色?

How can I change Checkbox color when I click and unclick?

当我单击该复选框的复选框颜色更改时,其余复选框保持另一种颜色,那么如何更改复选框的颜色?

if (CountryList.get(pos).getSelected()) {
    CountryList.get(pos).setSelected(false);
    holder.country.setBackgroundResource(R.color.btnbckgrd);
} else {
    CountryList.get(pos).setSelected(true);
    holder.country.setBackgroundResource(R.color.lightgreen);
}

你可以为此使用样式

<style name="yourStyle" parent="Base.Theme.AppCompat">
    <item name="colorAccent">your_color</item> <!-- for uncheck state -->
    <item name="android:textColorSecondary">your color</item> <!-- for check state -->
</style>

像这样在 xml 中设置

<CheckBox
     android:theme="@style/yourStyle"
/>

您在布局文件中尝试过android:tint="@color/your_color"吗??

适用于所有 API 的正确答案是:

创建样式:

<style name="CheckBox">
        <item name="colorControlNormal">@color/light_grey</item>
        <item name="colorControlActivated">@color/ts_white</item>
    </style>

并像这样使用它:

   <androidx.appcompat.widget.AppCompatCheckBox
                  .....
                    android:theme="@style/Bonus.CheckBox"
                  ..... />

设置样式后,您将不需要以编程方式检查视图背景

试试这个:

  final CheckBox cbox= (CheckBox) findViewById(R.id.cb_flash);

    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // Set the Flash CheckBox Text Color
            cbox.setTextColor(Color.BLUE);

            // Set the Flash CheckBox Background Color
            cbox.setBackgroundColor(Color.parseColor("#cbff75"));
        }
    });

 if(checkbox.isChecked()){
   cbox.setTextColor(Color.BLUE);

            // Set the Flash CheckBox Background Color
            cbox.setBackgroundColor(Color.parseColor("#cbff75"));

  }else{
 //chenge color
   }

refer this link another method

try this:
mSelectedItem = -1;
holder.country.setBackgroundResource(mSelectedItem == position ? 
R.color.lightgreen: R.color.btnbckgrd);