gpt4 book ai didi

Android Studio 的 "expected resource of type"检查?

转载 作者:IT老高 更新时间:2023-10-28 21:57:44 26 4
gpt4 key购买 nike

Android Studio Beta (0.8) 有一个漂亮的新功能,它检查一些 int 参数是否不是任意整数,而是具有一些属性。

例如,调用类似:

setContentView(R.id.textView1);

将正确报告 R.id.textView1 不是布局 id(消息是“预期的布局类型资源”)。还有其他类似的案例。

可以理解,一旦您将自己的方法添加到组合中,这种保护就会丢失,例如

private void mySetContentView(int resourceId) {
setContentView(resourceId);
}

然后我可以使用任意整数调用 mySetContentView(),它不会报错。

所以,我有两个(相关的)问题:

  1. 这是如何实现的——特殊检查是否“烘焙”到 lint 中?
  2. 有没有办法给mySetContentView()方法加注解,这样在调用无效值时也会报资源类型错误?

最佳答案

(感谢@CommonsWare 的提醒)。

在您自己的代码中有 Java 注释来支持这些检查。它们都可以在 android.support.annotations 包中找到:

  • IdRes
  • DrawableRes
  • LayoutRes
  • StringRes
  • &c

在这种情况下,例如,我可以使用:

private void mySetContentView(@LayoutRes int resourceId) {
setContentView(resourceId);
}

Android Studio 将检查提供的资源 ID 是否确实用于布局。

此外,这些注释是导出的,因此它们在设计库时特别有用。

来源:

关于Android Studio 的 "expected resource of type"检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24716385/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com