如何正确扩展CountDownTimer类?

时间:2015-10-12 04:42:58

标签: android countdown extends countdowntimer extending

我正在尝试扩展CountDownTimer,但我有“在倒数计时器中没有默认构造函数”问题。

public class CustomTimer extends CountDownTimer {
    // fields I need to use my original timer
    boolean still_down;
    View v;
    MotionEvent e;

    public ErjanTimer(View v, MotionEvent e,boolean still_down, long duration, long interval){
        // my original constructor
        this.still_down = still_down;
        this.e = e;
        this.v = v;
    }

    public ErjanTimer(long duration, long interval){
        super(duration, interval);
    }

    @Override
    public void onTick(long millisUntilFinished) {
    }

    @Override
    public void onFinish() {
    }
}

2 个答案:

答案 0 :(得分:1)

  

“倒数计时器中没有默认构造函数”

如您所知,构造函数与类名具有相同的名称。但是在当前的代码类名称为CustomTimer,正如您所说ErjanTimer是无效的构造函数。目前具有ErjanTimer名称的方法的行为类似于具有相同名称但不同参数的方法

因此,只需使用CustomTimer代替ErjanTimer来构造函数:

public CustomTimer(long duration, long interval){
    super(duration, interval);
}

答案 1 :(得分:0)

如果ρяσѕρєяK已经提出的类名问题只是错字,我会建议另一种答案。

所以你的班级有以下结构:

public class ErjanTimer extends CountDownTimer {
    ...
    public ErjanTimer(View v, MotionEvent e,boolean still_down, long duration, long interval){
        ...
    }

    public ErjanTimer(long duration, long interval){
        super(duration, interval);
    }
    ...
}

“在倒数计时器中没有默认构造函数”错误。

在这种情况下,您必须在原始构造函数中调用super。

public ErjanTimer(View v, MotionEvent e,boolean still_down, long duration, long interval){
    super(duration, interval);
    ...
}