【发布时间】:2015-08-28 22:11:50
【问题描述】:
我正在制作一个课程项目,对于这个项目,我需要显示一个倒数计时器。将有一个按钮将计时器增加 5 秒以上。例如,如果计时器设置并在 1:00 开始,并且如果用户单击按钮,则计时器必须像 1:05 一样增加 +5。
我的代码:
public class MainActivity extends Activity {
Button incrementTime, startTime;
public TextView timedisplay;
long millisInFuture = 1000;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
incrementTime = (Button) findViewById(R.id.button2);
startTime = (Button) findViewById(R.id.button3);
timedisplay = (TextView) findViewById(R.id.mycounter);
resetText();
incrementTime.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
millisInFuture += 1000;
resetText();
}
});
startTime.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
CountDownTimer wavetimer = new myTimer(millisInFuture + 3000, 1000).start();
// ^ add 3 seconds.
}
});}
protected void resetText() {
timedisplay.setText("Time Left: " + millisInFuture / 1000);
}
public class myTimer extends CountDownTimer {
private long millisActual;
public myTimer(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
millisActual = millisInFuture - 3000;
}
@Override
public void onTick(long millisUntilFinished) {
//v start showing the tick after 3 seconds.
if (millisUntilFinished <= millisActual) {
timedisplay.setText("Time Left: " + millisUntilFinished / 1000);
}
}
@Override
public void onFinish() {
timedisplay.setText("Countdown Finished");
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
我的问题:
这与我想要的方式相同,但它只会在计时器完成运行后递增。我希望它在倒计时运行时增加!
【问题讨论】:
-
记住:在这个例子中,我使用+1增量。
-
我试过这个,但我不希望它等到前一个计时器完成。天啊!! @FrankN.Stein
-
简单地取消之前的实例。 stackoverflow.com/questions/23630828/…
-
在@FrankN.Stein 下方写下您的解决方案