0

我试图在这里关注这个问题 字符串数组递增每个字符串 ,但它不想工作,我试图做的是当单击按钮时,通过递增字符串来增加 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());
                        }

是的,我正在把它写到一个我想包括在内的扫描仪上,以防万一这可能是问题,即使我怀疑它是。

我究竟做错了什么?

4

1 回答 1

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());
 });
于 2013-08-27T20:12:27.267 回答