单击TextView时如何激活文本到语音?

时间:2011-11-24 07:59:53

标签: android onclick text-to-speech textview

问题如上。

场景:我以编程方式创建了包含文本视图的表行。当我点击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 ++。

请帮忙。非常感谢=)

1 个答案:

答案 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);
}