2017-07-21 5 views
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の値は期待どおりゼロになりますが、それは単に発言しません。 私は多くの検索を試みましたが、関連する文書や質問はありませんでした。

私はアンドロイド開発の初心者です。これが愚かな質問である場合は、ごめんなさい。

ありがとうございます。

答えて

0

if文を外側のif文の外に置いて作業しました。

関連する問題