2012-04-05 7 views
0

한 활동에서 일부 기능을 호출해야합니다. 하지만 그렇게하면 null 포인터 ... 오류가 발생합니다. 내 예를 들어이 사용하고 , http://www.javacodegeeks.com/2010/09/android-text-to-speech-application.html한 활동의 ​​기능을 다른 활동이나 서비스에서 호출하는 방법은 무엇입니까?

라인 (38)을 참조하십시오 tts.speak (텍스트, 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 클래스 내에서 MYCall()이 호출 될 때 작동하지 않습니다.

도움 주셔서 감사합니다.

답변

2

검사 할 코드가 많지 않으므로 진행 상황을 알기가 어렵습니다.

활동주기 방법의 텍스트 음성 변환 개체를 설정하고 있습니까? new TTA()을 사용하여 액티비티를 인스턴스화하면 호출되지 않습니다. 따라서 Text-To-Speech 객체가 제대로 초기화되지 않은 것일 가능성이 큽니다.

그러나 여러 위치에서 사용할 예정이므로 텍스트 음성 변환 관련 메서드가 특정 활동과 결합되지 않도록 코드를 다시 정렬하는 것이 좋습니다.

0

또는 tta.MYCall()onInit()이 호출 될 때까지 호출 할 수 없습니다.

따라서 두 줄의 코드를 실행하면 항상 작동하지 않을 수 있습니다.

TTA tta = new TTA(); 
while (!tta.isInitialized()) 
{ 
    try 
    { 
    Thread.sleep(100); 
    } 
    catch (InterruptedException e) 
    {} 
} 
tta.MYCall(); 
:

당신이 나 같은 필요한 코드를 재 - 배열

관련 문제