我试着在这里关注这个问题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,即使我怀疑它也可能是问题。
我做错了什么?
答案 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());
});