我正在尝试扩展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() {
}
}
答案 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);
...
}