2011-06-16 67 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 

    } 

这个解决我的问题...