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()
都不会导致此错误