我正在开发百叶窗应用程序。
我有4个屏幕大小的按钮(重叠)。在程序的每一步中,一个按钮将是可单击的,并且每个按钮都具有一个以上的作业。
我的程序从声音开始(Android TTS引擎)。就像“请触摸屏做x”。在此步骤之后,我想等待3秒钟以单击按钮,如果未单击按钮,则发声“请触摸屏执行y”,然后再次等待3秒钟以执行作业y。(x和y是第一个按钮的工作)。
按钮应根据触摸屏执行其中一项操作。但是我该如何等待3秒才能单击按钮,并继续发出下一个选项并再次等待3秒。
如果单击第一个按钮,它将消失-按钮2将是可单击的-并且TTS引擎将开始发出第二个按钮的选项。应用程序将像这样工作,但是我被困在等待按钮点击的部分中。
我建议您改用android.os.Handler。在您的情况下,您可以执行以下操作:
public void onCreate() {
this.handler = new Handler()
playTheVoiceOfThingX()
viewToTap.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
doThingX();
}
});
handler.postDelayed(new PrepareThingYTask(), 3000);
}
class PrepareThingYTask() implements Runnable {
viewToTap.setOnClickListener(new OnClickListener(){
@Override
public void onClick() {
doThingY();
}
});
handler.postDelayed(new PrepareThingZTask(), 3000);
}
class PrepareThingZTask() implements Runnable {
....
}
一个很好的提醒是,处理程序执行的runnable可以在UIThread中执行,因此无需进行繁重的工作,也可以创建其他循环程序来运行它。
问候
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句