我对Android很陌生(我已经在一个月内开始编程了,感觉好像我在大部分时间里一直在与这个问题作斗争!)
我正在尝试创建一个计时器应用。此时有两个按钮启动计时器(如果再次按下它会将时间重置为0)和一个停止按钮暂停计时器(如果再次按下则不执行任何操作)。
我正在尝试使这些按钮执行以下操作:
我的java代码如下:
//within on create
start = (Button)findViewById(R.id.start);
stop = (Button)findViewById(R.id.stop);
tv = (TextView)findViewById(R.id.tv);
tv.setText("30"); // starting from 30.
final MyCounter timer = new MyCounter(30000,1000);
start.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
timer.start();
}
});
stop.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
timer.cancel();
}
});
}
public class MyCounter extends CountDownTimer{
public MyCounter(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onFinish() {
System.out.println("Timer Completed.");
tv.setText("Timer Completed.");
}
@Override
public void onTick(long millisUntilFinished ) {
tv.setText((millisUntilFinished/1000 + ":" + millisUntilFinished/100));
System.out.println("Timer : " + (millisUntilFinished/1000));
}
}
我想我将不得不保存和恢复实例状态以暂停和恢复计时器,我将不得不使用布尔值来更改button1('start')的onclicklist,即。如果计时器正在运行并且单击了button1,请执行此操作。
答案 0 :(得分:0)
在onTick方法中,将剩余的milliSeconds记录到变量中。然后,当您在第二次按下按钮时,使用onTick()方法中记录的剩余时间创建一个新的CountDownTimer。