我有一个使用扩展
android.view.View的类的问题,这很奇怪,因为我在两个不同的项目中做同样的事情,只有其中一个是这个问题.
这两个项目都有一个类,它说:公共类ClassName扩展了View.
但是对于其中一个,这一行用红色加下划线,给出的信息是
“There is no default constructor available in ‘android.view.View’ “
我不知道为什么一个人有这个问题而另一个没有.当然,它们不是同一个类,但它们都以相同的方式扩展View.我认为这将是一个常见的问题,但我没有通过谷歌搜索找到任何相关信息,所以我在这里问.感谢您提供任何帮助!
编辑:
这些评论让我再次检查,果然,带有错误的类没有在其类中定义构造函数.我觉得有趣的是,即使我去定义了一个构造函数,它仍然会给出相同的错误,直到我添加参数(Context context,AttributeSet attrs)并在构造函数中添加了一行’super(context,attrs)’.我添加了这些因为它们存在于工人类的构造函数中.所以工作版本是
public DrawingActivity(Context context,AttributeSet attrs) { super(context,attrs); }
解决方法
删除没有参数的构造.
您的视图应该只有3个构造函数:
public DrawingActivity(Context context,attrs); } public DrawingActivity(Context context,AttributeSet attrs,int defStyle) { super(context,attrs,defStyle); } public DrawingActivity(Context context) { super(context); }
关于这个构造函数,你可以阅读here.我只能提到defStyle:
The default style to apply to this view. If 0,no style will be applied (beyond what is included in the theme). This may either be an attribute resource,whose value will be retrieved from the current theme,or an explicit style resource.