2013-08-27 72 views
0

我試着在這裏跟隨這個問題String array incrementing each string 但它不想工作,什麼即時嘗試要做的是當按鈕被點擊增加什麼TextToSpeech語音將通過增加字符串說。因此從字符串0開始,然後從1到2到3到4等循環。繼承人的代碼TextToSpeech與一個字符串數組

字符串數組代碼

  String [] speakLetters = { "Letter A for Ant", "Letter b for Bat", "Letter C for Cat" ....... , "Letter Z for zoo"}; 

該陣列奠定了就好了試圖增加時,其只是不工作。它要麼說它只是第一個ANT,並且如果我更改代碼,它永遠不會增加或凍結。

代碼試圖遞增陣列

   mNextBtn.setOnClickListener(new OnClickListener() { 
         int cIndex = 0; 
          int stringLength = speakLetters.length; 
          String speakNow = speakLetters[stringLength]; 
          cIndex = (cIndex++); // I also tried here cIndex = (cIndex + 1) % stringLength; 
          tts.speak(speakNow, TextToSpeech.QUEUE_FLUSH, null); 

         mNextBtn.setEnabled(mSCanvas.isUndoable()); 
         } 

是我寫這一個scanvas我想包括只是櫃面這可能是即使我懷疑這就是問題所在。

我在做什麼錯?

+0

如何工作這一行你:'字符串speakNow = speakLetters [ stringLength];'?該數組的最後一個元素將位於'speakLetters [stringLength-1]'處。 – Gloria

回答

0

聲明CINDEX變量作爲類成員點擊監聽塊外:

int cIndex = 0; 

,然後修改單擊處理代碼:

mNextBtn.setOnClickListener(new OnClickListener() { 
     String speakNow = speakLetters[cIndex]; 
     tts.speak(speakNow, TextToSpeech.QUEUE_FLUSH, null); 

     cIndex++; 
     cIndex %= speakLetters.length; 

     mNextBtn.setEnabled(mSCanvas.isUndoable()); 
}); 
+0

完美謝謝你 –

相關問題