Java Android - 助手错误:没有适用于'()的#con;

时间:2015-09-21 08:25:10

标签: java android

我收到了错误

  

"()"

没有适用的构造函数

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

3 个答案:

答案 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