出于某种原因,Eclipse不喜欢调用super(context,attrs,defStyle),但它对其他超级调用很满意。错误是“构造函数LinearLayout(Context,AttributeSet,int)未定义”。
我认为问题不在于这个代码本身,而是项目设置中的其他东西,因为我从一个做同样事情的例子中调整了几乎完全相同的代码,但是对于一个相对于我来说运行良好的RelativeLayout在测试项目中设置Eclipse。
请帮助:)
public class MyLinearLayout extends LinearLayout {
public MyLinearLayout(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
myInit();
}
public MyLinearLayout(Context context, AttributeSet attrs) {
super(context, attrs);
myInit();
}
public MyLinearLayout(Context context, int checkableId) {
super(context);
myInit();
}
答案 0 :(得分:3)
根据these javadocs,错误完全正确。
LinearLayout
没有那个构造函数。这是两个有效的构造函数:
LinearLayout(Context context)
LinearLayout(Context context, AttributeSet attrs, Map inflateParams)
答案 1 :(得分:1)
http://developer.android.com/reference/android/widget/LinearLayout.html
根据开发人员网站的说法,LinearLayout(context,attrs,defStyle)构造函数仅在API版本11中可用,因此在早期版本中不起作用。