2011-11-24 1 views
0

la question est comme ci-dessus.Comment activer la synthèse vocale lorsque vous cliquez sur TextView?

scénario: j'ai créé par programmation des lignes de tableau avec une vue de texte. Je voulais permettre la synthèse vocale lorsque je cliquais sur le texte. il y a une raison pour ne pas utiliser listview. J'ai essayé d'utiliser le bouton pour une utilisation plus facile, mais le bouton que j'ai créé est toujours hors de la dimension qui a donné. Donc, je voulais utiliser textview pour activer le TTS.

Comment puis-je faire cela?

i essayé d'utiliser

tv.setOnClickListener(new OnClickListener() 
{ 
    public void OnClick(View v) 
    { 
     String speech = list.get(i).toString(); 
     tts.speak(speech,TextToSpeech.QUEUE_FLUSH,null); 
    } 
}); 

i utilise pour boucle pour elle, de sorte qu'il va créer une ligne de tableau pour chaque données recueillies. le problème est, il a demandé le "je" pour être final. et quand je l'ai fait final, je ne peux pas utiliser i ++.

aidez s'il vous plaît. merci beaucoup =)

Répondre

0

Essayez de déclarer votre int i; dans votre cours. Je crois que cela vous aidera à éviter d'utiliser le modificateur 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); 
       } 
     }); 
     ... 
    } 


} 

ou mettre ce code String speech = list.get(i).toString(); tts.speak(speech,TextToSpeech.QUEUE_FLUSH,null); à une autre méthode. par exemple:

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); 
} 
Questions connexes