Android studio 在Android Studio中初始化自定义视图:应为xml类型的资源

Android studio 在Android Studio中初始化自定义视图:应为xml类型的资源,android-studio,android-custom-view,compiler-warnings,android-resources,Android Studio,Android Custom View,Compiler Warnings,Android Resources,我有一个名为IconView的自定义视图,它具有以下初始化构造函数: public class IconView extends RelativeLayout implements Checkable { ... public IconView(Context context, AttributeSet attrs, boolean useDefaultImage) { super(context, attrs); inflateLayout(

我有一个名为
IconView
的自定义视图,它具有以下初始化构造函数:

public class IconView extends RelativeLayout implements Checkable {

    ...

    public IconView(Context context, AttributeSet attrs, boolean useDefaultImage) {
        super(context, attrs);
        inflateLayout(context);

    ...
为了从xml初始化
AttributeSet
实例来构造视图,我使用
getResources().getXml(R.layout.icon\u视图),false)。
这将成功编译并正确运行。但是,Android studio会突出显示代码并向我显示以下错误:

错误的详细描述如下:

所需的资源类型为xml less。。。(Ctrl+F1) 报告两种类型的问题:

  • 提供了错误类型的资源标识符。例如,当 调用Resources.getString(int-id),您应该传递 R.string.什么,不是R.drawable.什么

  • 传球失误 常量指定一个方法,该方法需要一组特定的 常数。例如,调用View#setLayoutDirection时 参数必须是android.view.view.LAYOUT\u DIRECTION\u LTR或 android.view.view.LAYOUT\u DIRECTION\u RTL

问题:

虽然代码可以工作,但我不知道如何重写它,这样错误就会在Android Studio中消失。这个错误在视觉上很烦人,因此我如何才能消除它呢?

Resources\getXml(int-id)
用于获取xml类型的资源,它位于
xml
资源文件夹中。另一方面,您在这里传递布局资源
R.layout.icon\u view

在此处使用
getResources().getLayout(R.layout.icon\u视图)
,错误将消失

注意:
Resources#getLayout()
上的文档说明如下:

这个函数实际上是一个使用布局资源调用getXml(int)的简单包装器

看来这是一个与皮棉有关的问题。无论哪种方式,
getLayout()
都不会导致此错误。

Resources\getXml(int-id)
用于获取xml类型的资源,它位于
xml
资源文件夹中。另一方面,您在这里传递布局资源
R.layout.icon\u view

在此处使用
getResources().getLayout(R.layout.icon\u视图)
,错误将消失

注意:
Resources#getLayout()
上的文档说明如下:

这个函数实际上是一个使用布局资源调用getXml(int)的简单包装器

看来这是一个与皮棉有关的问题。无论哪种方式,
getLayout()
都不会导致此错误