如何继承一个部件

问题描述:

我是子类按钮,这样如何继承一个部件

import android.widget.Button; 
public class MyButton extends Button { 
    // ... 
} 

然而,任何控件我尝试子类编译错误

结果中有没有可用的默认构造函数[部件]

任何帮助?谢谢。

+3

....添加一个默认的构造函数? –

+0

添加一个导入'android.widget.Button'的源代码? –

+0

删除默认结构。 –

您遇到的错误是由仅具有至少一个参数的构造函数的小部件引起的。

,如果你有一个类A这样的:

public class A { 
    public A(String parameter) { // ... } 
} 

,你定义一个类B延伸A,那么你必须通话AB构造像这样:

public class B extends A { 
    public B(){ 
     super("some string"); // you have to have this! 
    } 
} 

在您的按钮的情况下,使用此构造函数

public MyButton(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    this.setOnClickListener(this); 
} 

Java中的子类不继承父构造函数,您将需要重新实现属于Button的4个构造函数。只需在每个中调用超级构造函数即可。