Как активировать Text-To-Speech при нажатии на TextView? - PullRequest
0 голосов
/ 24 ноября 2011

вопрос как выше.

сценарий: я программно создал строки таблицы с текстовым представлением в нем. я хотел разрешить преобразование текста в речь, когда нажимал на текстовое представление. есть некоторая причина не использовать 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 голосов
/ 24 ноября 2011

Попробуйте объявить ваш int i; в вашем классе.Я считаю, что это поможет вам избежать использования окончательного модификатора.

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