使用@StyleableRes注释的obtainStyledAttributes。抑制警告

时间:2014-10-14 12:35:39

标签: java android annotations android-studio android-resources

在查看答案here时,我遇到了问题:

TypedArray ta = obtainStyledAttributes(R.style.MyCustomStyle, attrs);

似乎Android Studio不允许我传入一个不是来自R.styleable资源的int,而不会收到警告。

它告诉我它需要一个类型为styleable的资源,我认为这意味着我正在调用的代码已使用@StyleableRes annotation注释

Expected resource of type styleable

读取R.style中定义的值的最佳操作方法是什么。{x}?链接帖子上接受的答案有效并编译,但我不知道如何压制警告。因为有警告,压制是否安全?如果是这样,怎么样?

2 个答案:

答案 0 :(得分:9)

我认为正确的方法可以抑制这种情况:

@SuppressWarnings("ResourceType")

当我按下Alt-Enter以显示警告的修正并选择检查'常量和资源类型不匹配'选项>时,我提供了此功能。 抑制课程(附加截图)enter image description here

它对我有用。

由于您所引用的任何代码都已写入,因此此检查的ID可能已更改;我简要地查看了提交日志,但找不到对它的引用。

答案 1 :(得分:0)

您可以使用@SuppressWarnings("ResourceType")取消针对问题所在方法的警告检查,或者只是在该行之前使用//noinspection ResourceType,以避免仅在该行代码中进行检查。