Java 如何从同一按钮暂停/恢复MyCounter?
我对安卓相当陌生(我已经编程将近一个月了,感觉好像大部分时间我都在与这个问题作斗争!) 我正在尝试创建一个计时器应用程序。目前有两个按钮,一个启动计时器(如果再次按下,则将时间重置为0),另一个停止按钮暂停计时器(如果再次按下,则不执行任何操作) 我试图让这些按钮执行以下操作:Java 如何从同一按钮暂停/恢复MyCounter?,java,android,timer,countdown,countdowntimer,Java,Android,Timer,Countdown,Countdowntimer,我对安卓相当陌生(我已经编程将近一个月了,感觉好像大部分时间我都在与这个问题作斗争!) 我正在尝试创建一个计时器应用程序。目前有两个按钮,一个启动计时器(如果再次按下,则将时间重置为0),另一个停止按钮暂停计时器(如果再次按下,则不执行任何操作) 我试图让这些按钮执行以下操作: 按钮1=如果按下一次,则启动计时器。如果在计时器运行时按下,它将暂停;如果在计时器暂停时按下,它将恢复 按钮2=如果按下,将重新启动计时器 我的java代码如下: //within on create
- 按钮1=如果按下一次,则启动计时器。如果在计时器运行时按下,它将暂停;如果在计时器暂停时按下,它将恢复
- 按钮2=如果按下,将重新启动计时器
//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(“开始”)的onclicklistner。例如,如果计时器正在运行并单击了button1,则执行此操作。在onTick方法中,将剩余的毫秒记录到一个变量中。然后,当您在第二次按下按钮时,用您在onTick()方法中记录的剩余时间创建一个新的倒计时器。谢谢您的awnser,不过我还有几个问题。。。如何将重拍时间记录为整数?当我创建第二个倒计时时,我是否使用布尔值/我如何在倒计时计时器应该运行的时间之间进行定义?我对这一切还不太熟悉,所以还是习惯了。