问题如上。
场景:我以编程方式创建了包含文本视图的表行。当我点击textview时,我想允许文本转语音。有一些原因不使用listview。我试图使用按钮更容易使用,但我创建的按钮总是超出给出的维度。所以,我想用textview来激活TTS。
我该怎么做?
我尝试使用
tv.setOnClickListener(new OnClickListener()
{
public void OnClick(View v)
{
String speech = list.get(i).toString();
tts.speak(speech,TextToSpeech.QUEUE_FLUSH,null);
}
});
我为它使用for循环,因此它将为收集的每个数据创建一个表行。问题是,它要求“我”是最终的。当我做到最后,我不能使用i ++。
请帮忙。非常感谢=)
答案 0 :(得分:0)
尝试在课堂上声明int i;
。我相信这会帮助你避免使用final修饰符。
public class MyActivity extends Activity {
int i;
public void onCreate(Bundle savedInstanceState) {
...
tv.setOnClickListener(new OnClickListener()
{
public void OnClick(View v){
String speech = list.get(i).toString();
tts.speak(speech,TextToSpeech.QUEUE_FLUSH,null);
}
});
...
}
}
或将此代码String speech = list.get(i).toString();
tts.speak(speech,TextToSpeech.QUEUE_FLUSH,null);
放到另一个方法中。例如:
tv.setOnClickListener(new OnClickListener()
{
public void OnClick(View v){
speak();
}
});
__
public void speak(){
String speech = list.get(i).toString();
tts.speak(speech,TextToSpeech.QUEUE_FLUSH,null);
}