[英]How to call function of one Activity from other Activity or service?
我需要從一項活動中調用一些功能。 但是當我這樣做時,它會給出 null 指針...錯誤。 我用這個作為我的例子, http://www.javacodegeeks.com/2010/09/android-text-to-speech-application.html
請看第 38 行,說 tts.speak(text, TextToSpeech.QUEUE_ADD, null);
所以,如果我像這樣更改代碼......
public class TTA extends Activity implements OnInitListener {
... ... ... ...
public void MYCall()
{
tts.speak(text, TextToSpeech.QUEUE_ADD, null);
}
... ... ...
}
然后把這個稱為我從另一個活動中調用的,就像這樣,
TTA tta = new TTA();
tta.MYCall();
它不應該工作嗎? 它不會,但是當從 TTA class 中調用 MYCall() 時,它會起作用。
謝謝您的幫助。
很難說出發生了什么,因為您沒有提供太多代碼來檢查。
您是否正在為 Activity 生命周期方法中的文本轉語音 object 進行設置? 如果您只是使用new TTA()
實例化 Activity,則不會調用這些方法,因此很可能您的文本轉語音 object 尚未正確初始化。
但是:我建議重新安排您的代碼,以便與文本到語音相關的方法不與特定活動耦合,因為您將在多個地方使用它。
在調用 onInit() 之前,您不能調用speak()
或tta.MYCall()
onInit()
因此,運行您的兩行代碼不太可能一直有效。
您需要這樣的東西或重新安排您的代碼:
TTA tta = new TTA();
while (!tta.isInitialized())
{
try
{
Thread.sleep(100);
}
catch (InterruptedException e)
{}
}
tta.MYCall();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.