我收到了错误
"()"
没有适用的构造函数
在AIDE,
这是我的代码,我认为没有错误,但我收到了错误,如何解决?
public class ToggleRD extends RadioButton {
// Implement necessary constructors
@Override
public void toggle() {
if(isChecked()) {
if(getParent() instanceof RadioGroup) {
((RadioGroup)getParent()).clearCheck();
}
} else {
setChecked(true);
}
}
}
答案 0 :(得分:0)
尝试覆盖它的构造函数。
RadioButton(Context context, AttributeSet attrs, int defStyleAttr)
答案 1 :(得分:0)
您需要覆盖默认构造函数,以便Android可以使用XML文件创建视图,并在使用过程中重新创建视图。
看看这些构造函数:
http://developer.android.com/reference/android/view/View.html
只需使用相同的参数调用super,就可以解决问题。
答案 2 :(得分:0)
如果您检查RadioButton的文档,您会看到它提供了4个构造函数,但没有一个没有参数。
我在android中扩展View
的方法是创建一个private
方法(称之为sharedConstructor
或其他)并在每个构造函数中调用它。所以这样做:
public class ToggleRD extends RadioButton {
// Implement necessary constructors
public ToggleRD(Context context) {
super(context);
}
public ToggleRD(Context context, AttributeSet attrs) {
super(context, attrs);
}
public ToggleRD(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public void toggle() {
if(isChecked()) {
if(getParent() instanceof RadioGroup) {
((RadioGroup)getParent()).clearCheck();
}
} else {
setChecked(true);
}
}
}
由于您不会覆盖构造函数,因此请继续拨打super
。