Android 如何对小部件进行子类化

Android 如何对小部件进行子类化,android,Android,我要给这样一个按钮分类 import android.widget.Button; public class MyButton extends Button { // ... } 然而,我尝试子类化的任何小部件都会导致编译器错误 [widget]中没有可用的默认构造函数 有什么帮助吗?谢谢。您遇到的错误是由于小部件只有至少接受一个参数的构造函数造成的 如果您有这样一个类a: public class A { public A(String parameter) { // ...

我要给这样一个按钮分类

import android.widget.Button;
public class MyButton extends Button {
    // ...
}
然而,我尝试子类化的任何小部件都会导致编译器错误

[widget]中没有可用的默认构造函数


有什么帮助吗?谢谢。

您遇到的错误是由于小部件只有至少接受一个参数的构造函数造成的

如果您有这样一个类
a

public class A {
    public A(String parameter) { // ... }
}
您定义了一个扩展
a
的类
B
,然后必须在
B
中调用
a
的构造函数,如下所示:

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);
}

您遇到的错误是由于小部件只有至少接受一个参数的构造函数造成的

如果您有这样一个类
a

public class A {
    public A(String parameter) { // ... }
}
您定义了一个扩展
a
的类
B
,然后必须在
B
中调用
a
的构造函数,如下所示:

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个构造函数。只需在每个中调用超级构造函数。

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

。。。。添加默认构造函数?在导入
android.widget.Button
源代码中添加一个?删除默认构造函数。你的意思是覆盖它,然后调用父构造函数,明白了吗。。。。添加默认构造函数?在导入
android.widget.Button
源代码中添加一个?删除默认构造函数。你的意思是覆盖它,并调用父构造函数,明白吗