mat*_*ash 29 android lint typechecking android-studio
Android Studio Beta(0.8)有一个漂亮的新功能,它检查某些int参数不是任意整数,而是具有一些属性.
例如,调用类似于:
setContentView(R.id.textView1);
Run Code Online (Sandbox Code Playgroud)
将正确报告R.id.textView1不是布局ID(消息是"类型布局的预期资源").还有其他案例.
可以理解的是,只要您将自己的方法添加到组合中,这种保护就会丢失,例如
private void mySetContentView(int resourceId) {
setContentView(resourceId);
}
Run Code Online (Sandbox Code Playgroud)
然后我可以调用mySetContentView()任意整数,它不会抱怨.
所以,我有两个(相关的)问题:
mySetContentView()方法,以便在使用无效值调用它时也会报告资源类型错误?mat*_*ash 36
(感谢@CommonsWare的提醒).
Java注释可以在您自己的代码中支持这些检查.它们都可以在android.support.annotations包装中找到:
IdResDrawableResLayoutResStringRes在这种情况下,例如,我可以使用:
private void mySetContentView(@LayoutRes int resourceId) {
setContentView(resourceId);
}
Run Code Online (Sandbox Code Playgroud)
Android Studio将检查提供的资源ID是否确实用于布局.
而且,这些注释被导出,因此在设计库时它们特别有用.
资料来源:
Kit*_*fer 20
这些都是注释:
@AnimatorRes
@AnimRes
@AnyRes
@ArrayRes
@AttrRes
@BoolRes
@ColorRes
@DimenRes
@DrawableRes
@FractionRes
@IdRes
@IntDef
@IntegerRes
@InterpolatorRes
@LayoutRes
@MenuRes
@NonNull
@Nullable
@PluralsRes
@RawRes
@StringDef
@StringRes
@StyleableRes
@StyleRes
@XmlRes
Run Code Online (Sandbox Code Playgroud)
试试这个答案:它正在工作......把这段代码放到你的build.gradle中
android {
lintOptions {
disable "ResourceType"
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26514 次 |
| 最近记录: |