以编程方式更改复选框颜色

问题描述 投票:0回答:1

我用这个代码:

tytMaths = dialog.findViewById(R.id.tytMaths);        
CompoundButtonCompat.setButtonTintList(tytMaths, ColorStateList.valueOf(R.color.blue));

它变灰了我的colors.xml

    <?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#3F51B5</color>
    <color name="colorPrimaryDark">#303F9F</color>
    <color name="colorAccent">#FF4081</color>

    <color name="blue">#0DFFDC</color>
    <color name="green">#B8FF0D</color>
    <color name="yellow">#FFF90D</color>
    <color name="orange">#FFA00D</color>
    <color name="red">#FF3A0D</color>

</resources>

我该怎么办?看来我的颜色是正确的。我认为问题在于Java代码。

java android checkbox colors
1个回答
4
投票

ColorStateList.valueOf()采用颜色int,而不是颜色资源int。

请改用:

ColorStateList.valueOf(context.getResources().getColor(R.color.blue))

其中context是您可以访问的任何Context对象。如果这是在Activity中,请删除context.。如果它在视图中,请使用getContext().

© www.soinside.com 2019 - 2024. All rights reserved.