单击和取消单击时如何更改复选框颜色?
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
}
try this:
mSelectedItem = -1;
holder.country.setBackgroundResource(mSelectedItem == position ?
R.color.lightgreen: R.color.btnbckgrd);
当我单击该复选框的复选框颜色更改时,其余复选框保持另一种颜色,那么如何更改复选框的颜色?
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
}
try this:
mSelectedItem = -1;
holder.country.setBackgroundResource(mSelectedItem == position ?
R.color.lightgreen: R.color.btnbckgrd);