在我的應用程序中,我正在使用片段和viewpager。我有一個單獨的文本到擴展活動但沒有佈局的語音類。我已經在FragmentAdapter類中實例化了這個類,根據當前屏幕上的活動調用這個函數。然而,文本到語音構造函數正在導致應用程序崩潰導致強制關閉。我已經找到了文本中的罪魁禍首構造函數是上下文,儘管我已經使用了getApplicationContext()和className.this,但它仍然使應用程序崩潰。這裏是代碼:文本到語音構造器崩潰的應用程序android
public class textToSpeech extends Activity{
TextToSpeech tts=null;
public textToSpeech()
{
Log.d("text to speech", "constructor");
tts = new TextToSpeech(textToSpeech.this , new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
Log.d("text to speech", "init");
if(status != TextToSpeech.ERROR)
{
Log.d("text to speech", "condition");
tts.setPitch(1.1f);
tts.setSpeechRate(0.4f);
tts.setLanguage(Locale.US);
}
}
});
}
請指導我解決這個問題。
我已經使用startActivity()開始了文本到語音活動,但是當我將文本中的方法調用到語音類時,仍然收到NullPointerException。 (我實例化文本到語音類)
tts.SpeakText("hello world"); // in fragmentPagerAdapter exception class
在文本到語音類
public void SpeakText (String text)
{
Log.d("text to speech", "speaking");
if(text!=null)
tts.speak(text, TextToSpeech.QUEUE_FLUSH, null);
}
問候
已經做到了。應用程序仍然存在。 – user2498079
我在FragmentAdapter擴展類中實例化上面的類。如果我把上面的代碼放在onCreate中,我將不得不用startActivity來開始這個活動,而在非活動類中我不能這樣做。 – user2498079
所以它從'活動'延伸,但它不是一項活動?如果不是用'startActivity()'開始,那麼從'Activity'擴展來獲取上下文不起作用。你必須重新考慮你的設計。 – Dalmas