2011-06-16 66 views
1
 private TextToSpeech tts; 
@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.game); 
     tts = new TextToSpeech(this,(OnInitListener) clickball); 
} 

OnClickListener clickball=new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      score=scorenumber.nextInt(8); 
      ballid=v.getId(); 

      if(score==4) 
       { 
      playgame(ballid,Integer.toString(score)); 
dynamic_image.setBackgroundDrawable(getResources().getDrawable(R.drawable.four_01)); 
        dynamic_image.setVisibility(0x000000); 
        disablelayout(); 
        timerfunc1(dynamic_image,R.drawable.four_02); 


        tts.setLanguage(Locale.US); 
        tts.speak("Four", TextToSpeech.QUEUE_FLUSH, null); 
        dynamic_image.postDelayed(new Runnable(){    
         @Override    
         public void run() { 
          dynamic_image.setBackgroundDrawable(getResources().getDrawable(R.drawable.score4)); 
          dynamic_image.setVisibility(0x000000);  
          timerfunc(dynamic_image); 
         }   
         }, 2200); 
        enablelayout4(); 

       } 
    } 

鑑於上面是我的源代碼,但它運行時拋出classcast異常..我想要將文本「四」轉換爲語音時,得分是4.plz任何人幫我...我知道下面給出拋exception.but我硝基甲苯知道熱來解決它的代碼行..文本到語音轉換投擲classcast異常

  tts = new TextToSpeech(this,(OnInitListener) clickball); 

回答

0

我得到了答案......我在

tts = new TextToSpeech(this,(OnInitListener) clickball);  
給clicklistener名

實際上我不得不給OnInitLis tener name there.i改變了這樣的代碼。

fisrt實現TextToSpeech.OnInitListener 並添加了它的未實現方法(OnInit)。

private TextToSpeech tts; 
@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.game); 
     tts = new TextToSpeech(this,this); 
OnClickListener clickball=new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      score=scorenumber.nextInt(8); 
      ballid=v.getId(); 
      if (totalovers==0) 
      { 

       gameover(); 
       return; 
      } 
      if(score==4) 
       { 
        playgame(ballid,Integer.toString(score)); 
        dynamic_image.setBackgroundDrawable(getResources().getDrawable(R.drawable.four_01)); 
        dynamic_image.setVisibility(0x000000); 
        disablelayout(); 
        timerfunc1(dynamic_image,R.drawable.four_02); 

        currentScore ="FOUR"; 
        tts.setLanguage(Locale.US); 
        tts.speak(currentScore, TextToSpeech.QUEUE_FLUSH, null); 

        dynamic_image.postDelayed(new Runnable(){    
         @Override    
         public void run() { 
          dynamic_image.setBackgroundDrawable(getResources().getDrawable(R.drawable.score4)); 
          dynamic_image.setVisibility(0x000000);  
          timerfunc(dynamic_image); 
         }   
         }, 2000); 
        enablelayout4(); 

       } 
      } 

    @Override  
    public void onInit(int status) { 
     // TODO Auto-generated method stub 

    } 

這個解決我的問題...