int color = (colorString != null) ?
someIntReturningMethod(colorString) :
ContextCompat.getColor(c, R.color.defaultForWhatever);
notificationBuilder.setColor(color);
我得到"这里应该传递已解析的颜色而不是资源id "。
如果我删除?:并保留颜色定义为任意一个,Lint没有问题。
我可以在不抑制任何有用警告的情况下修复这个问题吗?如果不是,我该抑制哪一个?
对于这个问题,请不要有特别的解决方案。我在问关于?:混乱的lint.
[edit]所以,没有解决方案"?"混乱的绒毛",一般来说?
你可以使用@ColorInt
annotation来注释这个方法,这样lint就不会抛出一个警告
按如下方式修改代码:
int color;
if (colorString != null) {
color = someIntReturningMethod(colorString);
} else {
color = R.color.defaultForWhatever;
}
int color = ContextCompat.getColor(c, color);
someIntReturningMethod
未返回已解析的Android颜色。可能它只是从res/colors.xml
返回一个颜色,这必须稍后用方法解决:
ContextCompat.getColor(Context context, int color)