有一个关于CountDownTimer问题。 我必须做的一个应用程序,允许用户通过+1递增的时间的时间时,该按钮的每一次点击。 然后,被点击的按钮停止后等待三秒钟,然后开始倒计时。
我粘贴下面我的代码。
我的问题是:我似乎无法得到正常工作的人数的递增,但我似乎停止增加数后(的onStop()),它直接进入(onFinish())。 而不是去到OnTick()和减1的数量的每一秒。 我已经试过许多方法来解决这个问题,但都被卡住了。
任何人都可以引导我做什么正确的方向? 任何帮助,将不胜感激。 感谢你们!
public class MainActivity extends Activity {
Button incrementTime, startTime;
public TextView timedisplay;
public myTimer wavetimer;
private long millisInFuture;
private long millisUntilFinished;
private long countDownInterval;
private long onclicktime;
//private WaveInterface model;
public int countdown;
@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);
incrementTime.setText("Increment Time");
startTime.setText("Start");
timedisplay = (TextView) findViewById(R.id.mycounter);
timedisplay.setText("Time Left: " + millisUntilFinished);
wavetimer = new myTimer (millisInFuture, 1000);
incrementTime.setOnClickListener(new OnClickListener(){
int countdown = 01;
/**
* On click button Listner
* @return
*/
public void onClick(View v) {
millisInFuture++;
return;
}
});
startTime.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
wavetimer.start();
}
});}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
public class myTimer extends CountDownTimer {
public long millisInFuture;
private long countDownInterval;
public myTimer(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onTick(long millisUntilFinished) {
millisUntilFinished--;
if (millisUntilFinished == 0){
wavetimer.onFinish();
}
else {
timedisplay.setText("Time Left: " + millisUntilFinished / 1000);
}
}
@Override
public void onFinish() {
timedisplay.setText("Countdown Finished");
wavetimer.cancel();
}
public void onStop() {
millisInFuture = millisInFuture + 1;
timedisplay.setText("Time Left: " + millisInFuture);
}
我似乎无法弄清楚如何正确地增加数量。 我曾尝试多种方式和它保持搞砸了。 不知道去哪里找。 任何帮助,将不胜感激。 感谢你们!