gpt4 book ai didi

android - 如何在 AlertDialog 上自动暂停我的 CountDownTimer 并在对话框关闭后恢复它

转载 作者:行者123 更新时间:2023-11-30 00:05:53 24 4
gpt4 key购买 nike

我有一个基本的工作测验应用程序。我正在设置一个警报对话框,为用户提供问题的解释(无论是对还是错)

问题:我无法理解如何放置逻辑:在 AlertDialog 上暂停我的 CountDownTimer 并在单击关闭对话框按钮后自动恢复它。

仅供引用:我找到了关于如何为 CountDownTimer 暂停和恢复的答案,但我找不到关于以编程方式为 AlertDialog 设置它的答案。

这是我的工作代码:

new CountDownTimer(40000, 1000) {
public void onTick(long millisUntilFinished) {
timer.setText("Sec: " + millisUntilFinished / 1000);
}

public void onFinish() {
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(EasyLevel1.this);
alertDialogBuilder
.setTitle("Time's Up!")
.setMessage("Your Final Score is " + mScore + " points.")
.setCancelable(false)
.setPositiveButton("REPLAY",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int i) {
startActivity(new Intent(getApplicationContext(), EasyLevel1.class));
finish();
}
})
.setNegativeButton("EXIT",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int i) {
finish();
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
}.start();

这是我的回答逻辑:

answer1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(answer1.getText() == mAnswer){
mScore+=5;
score.setText("Score: " + mScore);
updateQuestion(rand.nextInt(mQuestionsLength));
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(EasyLevel1.this, R.style.quizAlert);
alertDialogBuilder
.setTitle("Bingo! Your answer is Correct.\n" + "Score: +5")
.setMessage("Correct Answer: " + mExplanation)
.setCancelable(true)
.setPositiveButton("Close", null);
//startActivity(new Intent(getApplicationContext(),MainActivity.class));
//finish();
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
} else {
mScore-=2;
score.setText("Score: " + mScore);
updateQuestion(rand.nextInt(mQuestionsLength));
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(EasyLevel1.this, R.style.quizAlert);
alertDialogBuilder
.setTitle("Oops! Your answer is Wrong.\n" + "Score: -2")
.setMessage("Correct Answer: " + mExplanation)
.setCancelable(true)
.setPositiveButton("Close", null);
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
}
});

最佳答案

您知道如何暂停/重新启动计时器,但您不知道将警报对话框关闭时将执行的代码放在哪里。

您已经有了使用 setPositiveButton("Close", null) 执行此操作的基础。而不是 null 你会想要使用一个监听器来重启计时器。像这样:

alertDialogBuilder.setPositiveButton("Close", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// Do timer stuff.
}
});

参见文档 here了解详情。

关于android - 如何在 AlertDialog 上自动暂停我的 CountDownTimer 并在对话框关闭后恢复它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49030833/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com