如何解决关闭对话框/警报框后如何恢复倒数计时器
我正在创建测验应用程序。我在测验活动中有一个倒计时计时器。我想在两者之间显示一个对话框/警报框。打开对话框时,倒数计时器将停止。但是当对话框关闭时,倒数计时器无法再次启动。请帮忙。
这是我的代码
btnHint.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
timer.cancel();// working fine
final AlertDialog.Builder dialog = new AlertDialog.Builder(QuizActivity.this);
dialog.setTitle("Read Carefully");
dialog.setMessage(c.getString(7));
dialog.setNegativeButton("Exit Hint",null);
dialog.show();
//how to start TIMER again after clicking 'Exit Hint'
}
});
我已经在onCreate中定义了一个倒数计时器,如下所示:
timer = new CountDownTimer(90000,1000) {
@Override
public void onTick(long millisUntilFinished) {
String time = String.valueOf(millisUntilFinished / 1000);
tvClock.setText("Time" + "\n" + time + "/90");
int seconds = (int) (millisUntilFinished / 1000);
if (seconds >= 31) {
tvClock.setBackgroundResource(R.drawable.Boxgreen);
} else if (seconds >= 16) {
tvClock.setBackgroundResource(R.drawable.Boxyellow);
} else {
tvClock.setBackgroundResource(R.drawable.Boxred);
}
}
解决方法
首先,您必须将CountDownTimer的milis保存到变量中,因为timer.cancel();
会重置计时器。然后,为否定按钮创建onClickListener,在其中使用保存的milis重新创建计时器。
CountDownTimer timer = new CountDownTimer(10000,10) { //timer will count down 10 seconds and save time every 10ms
@Override
public void onTick(long millisUntilFinished) {
milis = millisUntilFinished;
//save time into field milis
//Update your view with progress here
}
@Override
public void onFinish() {
}
};
timer.start();
btnHint.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
timer.cancel();// working fine
final AlertDialog.Builder dialog = new AlertDialog.Builder(QuizActivity.this);
dialog.setTitle("Read Carefully");
dialog.setMessage(c.getString(7));
dialog.setNegativeButton("Exit Hint",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,int which) {
timer = new CountDownTimer(milis,10) {
@Override
public void onTick(long millisUntilFinished) {
milis = millisUntilFinished;
//save time again if you want to pause it again
//Update your view with progress here
}
@Override
public void onFinish() {
}
};
timer.start();
}
});
dialog.show();
}
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。