2011-02-25 6 views
0

TextToSpeech API를 사용하고 일부 논리를 다른 클래스로 분리하려고합니다. 내가 통해 메소드를 호출 메인 클래스의 버튼 내에서 static mainclass object;TextToSpeech API에서 다른 클래스의 메서드 호출

: 다음 메인 클래스의 변수를 만든

public static void sayHello() { 
// Select a random hello. 
int helloLength = SoundGameScore.Questions.length; 
String hello = SoundGameScore.Questions[currentHelloIndex]; 
currentHelloIndex = (currentHelloIndex + 1) % helloLength; 
mTts.speak(hello, TextToSpeech.QUEUE_FLUSH, // Drop all pending entries 
              // in the playback queue. 
     null); 

: 나는 다음과 같은 방법을 넣어 한 별도의 클래스에서

사용하여이 객체 :

object.sayHello(); 

내가 안드로이드 아주 새로운 오전, 나는 나는이 같은 뭔가 잘못하고있는 중이 야 아는 것은 프로세스에서 오류를 폐쇄 나에게 준다 에뮬레이터. 이것은 또한 logcat에 nullexception 오류를 표시합니다. 고마워. 고마워.

답변

1

objectnull이므로 참조 번호가 NullPointerException 인 것으로 생각됩니다. 인스턴스 메소드를 호출하려면 객체를 초기화해야합니다.

sayHello()static 메서드이기 때문에 메서드를 호출하기 위해 클래스의 인스턴스를 만들 필요가 없습니다. 그냥 mainclass.sayHello()을 사용하십시오.

당신의 질문과 코드는 당신이 자바에 대한 많은 경험이 없다고 제안합니다. 아마도 당신은 안드로이드 개발에 뛰어 들기 전에 Java 코딩을 다듬기 위해 튜토리얼을해야 할 것입니다. 예를 들어 Java 규칙은 클래스 이름이 대문자 (MainClass)이고 참조가 의미있는 이름 (예 : object이 아닌)을 갖도록하는 것입니다.

+0

안녕하세요. Dave, 이전에 Mainclass.sayHello()를 사용하여 이전에 전화 했었지만 여전히 동일한 오류가 발생합니다. 감사합니다 – Tommy

+0

@ 토미 그러면 로그에서 정확한 오류를 게시해야합니다. –

관련 문제