这是我写的代码。
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开发的初学者,如果这是一个愚蠢的问题,我很抱歉。
提前致谢..!
答案 0 :(得分:0)
致力于将if语句放在外部if。
之外