我正在开发一种记忆游戏应用程序,最初的 6 个按钮将显示一些数字。然后当下面的 MyCount5sec 和处理程序运行时,在用户记住 5 秒的等待时间后,处理程序将调用 txtClearRun 从而擦除每个按钮上的所有文本。
然后在 5 秒的等待期之后,进入测试期。用户必须按顺序选择按钮,即。后面的按钮值必须大于前面的按钮值。
如果用户成功(即按下所有 6 个数字按钮),应用程序应该根据 postDelay 等待 1.5 秒?然而,似乎没有任何延误。
如果用户是错误的,即。按下值小于前一个按钮的按钮,用户失败,应用程序也应该等待 1.5 秒,按钮以红色突出显示。但是,似乎也没有这样的 1.5 秒延迟。也没有红色突出显示。
问题
- 为什么没有出现延迟?不能同时调用两个处理程序?
- 如何进一步修改?
非常感谢!!
private void setQup()
{
.....
MyCount5sec counter5sec = new MyCount5sec(6000,1000);
counter5sec.start();
handler.postDelayed(txtClearRun, 6000);
pressed = 0;
temp = 0;
final int txtClearRun1time = 1500; // set here!
button_space1.setText("reset press "+pressed);
Button11.setOnClickListener(new OnClickListener() {@Override
public void onClick(View v) {vibrate(); int i=0; Button11.setEnabled(false);
if (i == B0) {puttobutton(B0,0);} if (i == B1) {puttobutton(B1,1);} if (i == B2) {puttobutton(B2,2);}
if (i == B3) {puttobutton(B3,3);} if (i == B4) {puttobutton(B4,4);} if (i == B5) {puttobutton(B5,5);}
pressed = pressed + 1;
int buttonvalue = Integer.parseInt(Button11.getText().toString());
if (pressed >5)
{
TotalScores=TotalScores+20;
handler1.postDelayed(txtClearRun1, txtClearRun1time);
loadNextQup();
}
if (buttonvalue < temp)
{
Button11.setBackgroundResource(R.drawable.red_btn);
TotalScores=TotalScores-10;
handler1.postDelayed(txtClearRun1, txtClearRun1time);
loadNextQup();
}
temp = buttonvalue;
}});
......same for other buttons..
}
Runnable txtClearRun = new Runnable()
{
public void run() {blankbutton();} //remove text on buttons
};
Runnable txtClearRun1 = new Runnable()
{
public void run() {} // solely for wish to delay operations
};
private void loadNextQup()
{
if (TerminateOrNot ==0)
{
handler.removeCallbacks(txtClearRun);
handler1.removeCallbacks(txtClearRun1);
setQup();
}
....
}