奇怪的问题覆盖了LinearLayout的一个构造函数

时间:2011-04-16 01:20:33

标签: java android

出于某种原因,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();
}

2 个答案:

答案 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中可用,因此在早期版本中不起作用。