我用这个代码:
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代码。
ColorStateList.valueOf()
采用颜色int,而不是颜色资源int。
请改用:
ColorStateList.valueOf(context.getResources().getColor(R.color.blue))
其中context
是您可以访问的任何Context对象。如果这是在Activity中,请删除context.
。如果它在视图中,请使用getContext().
。