Android 倒计时后更改按钮行为
Changing button behavior after countdown in Android
我有一个小游戏应用程序,用户可以在其中猜测应用程序随机生成的两个数字的总和。他有 10 秒的时间来输入答案(为此使用倒数计时器)。当他输入数字并单击 "Confirm" 按钮时,OnClick 方法检查他是否正确,显示 toast "Right" 或 "Wrong",然后 activity 重新启动。然后他又要猜两个数的和,一直猜10次
(我使用 Intent 重启 activity):
Intent intent = new Intent (This application.this, This application.class);
startActivity(intent);
10 轮后,游戏进入下一个 activity 并显示总结果(我在下一个 activity 中有一个计数器,只要用户输入正确的总和,它就会递增).现在,规则规定,如果猜测数字的 10 秒时间到了,即使用户输入了正确的数字并单击了按钮,答案也应该自动认定为错误。这意味着 toast "You haven't entered any answer" 显示,下一个 activity 中的计数器不会递增(之后 activity 重新启动并且游戏继续正常进行)。我已经正确设置了所有其他内容,但我不知道如何完成此操作。如果有人有任何想法,我将不胜感激...
在您的倒计时中包含一个 boolean
标志,让您检查倒计时是否仍在 运行。类似于:
boolean CountdownRunning = false;
GameCountDown = new CountDownTimer(10000, 1000) {
public void onTick(long millisUntilFinished) {
// While the countdown is ticking set flag to true
CountdownRunning = true;
}
public void onFinish() {
// When the countdown finishes set flag back to false
CountdownRunning= false;
}
}.start();
然后在您的 OnClick 方法中,我猜您有一个 'if' 语句来处理答案是对还是错。在正确答案语句中添加第二个条件,检查倒计时是否仍为 运行.
if(CorrectAnswer && CountdownRunning)
第二个条件应该意味着您的计数器只会在答案在规定时间内递增。
我有一个小游戏应用程序,用户可以在其中猜测应用程序随机生成的两个数字的总和。他有 10 秒的时间来输入答案(为此使用倒数计时器)。当他输入数字并单击 "Confirm" 按钮时,OnClick 方法检查他是否正确,显示 toast "Right" 或 "Wrong",然后 activity 重新启动。然后他又要猜两个数的和,一直猜10次
(我使用 Intent 重启 activity):
Intent intent = new Intent (This application.this, This application.class);
startActivity(intent);
10 轮后,游戏进入下一个 activity 并显示总结果(我在下一个 activity 中有一个计数器,只要用户输入正确的总和,它就会递增).现在,规则规定,如果猜测数字的 10 秒时间到了,即使用户输入了正确的数字并单击了按钮,答案也应该自动认定为错误。这意味着 toast "You haven't entered any answer" 显示,下一个 activity 中的计数器不会递增(之后 activity 重新启动并且游戏继续正常进行)。我已经正确设置了所有其他内容,但我不知道如何完成此操作。如果有人有任何想法,我将不胜感激...
在您的倒计时中包含一个 boolean
标志,让您检查倒计时是否仍在 运行。类似于:
boolean CountdownRunning = false;
GameCountDown = new CountDownTimer(10000, 1000) {
public void onTick(long millisUntilFinished) {
// While the countdown is ticking set flag to true
CountdownRunning = true;
}
public void onFinish() {
// When the countdown finishes set flag back to false
CountdownRunning= false;
}
}.start();
然后在您的 OnClick 方法中,我猜您有一个 'if' 语句来处理答案是对还是错。在正确答案语句中添加第二个条件,检查倒计时是否仍为 运行.
if(CorrectAnswer && CountdownRunning)
第二个条件应该意味着您的计数器只会在答案在规定时间内递增。