这是我写的代码。
final Runnable runnable = new Runnable() {
public void run() {
if (j < 10) {
if(j == 0) {
speaker.speak("Forwards",TextToSpeech.QUEUE_FLUSH,null,null);
//Log.d("XXYYZZ", String.valueOf(j));
}
show.setImageResource(0);
show.setImageResource(images[j+1]);
j++;
}
else if(j == 10){
speaker.speak("Backwards",TextToSpeech.QUEUE_FLUSH,null,null);
j++;
}
else if (j < 19) {
show.setImageResource(0);
show.setImageResource(images[j+1]);
j++;
}
if (i++ < 94)
{
if(j ==19)
j = 0;
//Log.d("XXYYZZ", String.valueOf(j));
handler.postDelayed(this, 300);
}
else {
speaker.setSpeechRate(2.0f);
speaker.speak("Relax!",TextToSpeech.QUEUE_FLUSH,null,null);
Toast.makeText(CurrentWorkoutActivity.this, "Workout Completed", Toast.LENGTH_SHORT).show();
finish();
}
}
};
handler.post(runnable);我正在使用处理程序来引起延迟。
在这里,我尝试每当变量j的值重置为零时,发言人(TextToSpeech对象)就会发出“前进”的声音。但它只说明了第一次运行的情况。
每当j变为10时,它就会说“倒退”。请解释错误或概念。
我尝试使用logcat进行调试,j的值如预期的那样变为零,但它就是不说话。我试着搜索了很多,但没有得到相关的文档或问题。
我是一个android开发的初学者,如果这是一个愚蠢的问题,我很抱歉。
提前感谢..!
发布于 2017-07-22 03:15:35
致力于将if语句放在外部if。
https://stackoverflow.com/questions/45232427
复制相似问题