更改Android复选框';以编程方式设置颜色(支持库)?

更改Android复选框';以编程方式设置颜色(支持库)?,android,checkbox,android-support-library,Android,Checkbox,Android Support Library,我试图通过编程将复选框的颜色更改为与主题默认颜色不同的颜色。问题是我在做这样的事情: checkbox.setSupportButtonTintList(ColorStateList); 它可以工作,但是根据它的类文档,这个方法似乎只被同一个包(com.android.support)中的类所使用。这是我从Android Studio得到的警告: AppCompatCheckBox.setSupportButtonTintList can only be called from within

我试图通过编程将复选框的颜色更改为与主题默认颜色不同的颜色。问题是我在做这样的事情:

checkbox.setSupportButtonTintList(ColorStateList);
它可以工作,但是根据它的类文档,这个方法似乎只被同一个包(com.android.support)中的类所使用。这是我从Android Studio得到的警告:

AppCompatCheckBox.setSupportButtonTintList can only be called from within the same library group (groupId=com.android.support)

是否有一种标准/正确的方法可以对所有API级别执行此操作?

最后,在这里找到了一个来自Google的人的答案:。我没有使用以下选项是对的:

checkbox.setSupportButtonTintList(ColorStateList);
它似乎是一个私有API。相反,您必须使用:

CompoundButtonCompat.setButtonTintList(checkbox, colorStateList);
chxAll是android.widget.CheckBox的对象

根据rylexr答案,替换设计颜色的六色代码,您可以按以下方式指定颜色:

CompoundButtonCompat.setButtonTintList(checkboxView, ColorStateList
                        .valueOf(getResources().getColor(R.color.red)));

谢谢还有一个有用的提示:要以编程方式创建ColorStateList,可以使用
ContextCompat.getColorStateList(context,R.color.my\u checkbox\u选择器)
CompoundButtonCompat.setButtonTintList(checkboxView, ColorStateList
                        .valueOf(getResources().getColor(R.color.red)));