这是扩展CountDownTimer的类。
public class timer extends CountDownTimer{
private final long startTime = 50000;
private final long interval = 1000;
int timeElapsed;
public timer(long starttime, long interval){
super(starttime, interval);
}
@Override
public void onFinish() {
}
@Override
public void onTick(long millisUntilFinished) {
timeElapsed = (int)(startTime - millisUntilFinished);
}
}
这是主要的课程。
long millisUntilFinished = 0;
timer myTime = new timer(5000, 1000);
myTime.onTick(millisUntilFinished);
if(myTime.onTick(millisUntilFinished) == 2000){
//do the next process
}
此代码告诉
对于类型为void,int
,运算符==未定义
我想如何获得覆盖方法中的值timeElapsed,并且该值可以在主类中用于下一个进程。
请帮我解决这个问题。谢谢你的进步。
答案 0 :(得分:0)
void
返回类型意味着该方法不返回任何值,因此当您尝试将void值与2000
进行比较时会发生编译器错误。
这里最好的解决方案是简单地创建一个访问timeElapsed
的getter方法,然后在相等比较中使用该方法。
public class timer extends CountdownTimer {
...
public int getTimeElapsed() {
return timeElapsed;
}
...
}
然后,在main方法中,您可以使用该getter方法。
...
if (myTime.getTimeElapsed() == 2000) {
// do the next process
}
...
答案 1 :(得分:0)
您的方法调用myTime.onTick(millisUntilFinished)
不会返回任何错误。
我认为您正在尝试与timeElapsed
进行比较,您可以按照以下方式进行比较。
在getTimeElapsed()
类中添加方法timer
:
public int getTimeElapsed(){
return timeElapsed;
}
然后在你的主要方法中,你可以这样做:
long millisUntilFinished = 0;
timer myTime = new timer(5000, 1000);
myTime.onTick(millisUntilFinished);
if(myTime.getTimeElapsed() == 2000){
//do the next process
}