带字符串数组的TextToSpeech

时间:2013-08-27 19:56:49

标签: android arrays string text-to-speech android-button

我试着在这里关注这个问题String array incrementing each string 但它不想工作,我试图做的是当点击按钮时增加TextToSpeech语音将通过递增字符串来说明的内容。因此从字符串0开始,然后从1到2到3到4等,然后循环回来。继承人的代码

字符串数组代码

            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,即使我怀疑它也可能是问题。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

将cIndex变量声明为click侦听器块之外的类成员:

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());
 });