0
これは私が書いたコードです。テキストは、私のアンドロイドアプリケーションで期待通りに動作しません
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の値は期待どおりゼロになりますが、それは単に発言しません。 私は多くの検索を試みましたが、関連する文書や質問はありませんでした。
私はアンドロイド開発の初心者です。これが愚かな質問である場合は、ごめんなさい。
ありがとうございます。