2013-02-16 4 views
0

에서 공공 정적 기능 또는 공용 변수에 액세스 할 수 없습니다 그것에 가치를 추가 'MainActivity.java'안드로이드 : 다른 클래스 다음

private static String competition = null; 

제작 한 세터 함수의 선언입니다. 내가 같은 패키지에서 다른 클래스의 값을 얻기 위해 getter 함수를 만들었습니다

public static void setCompetition(String competition1) { 
    competition = competition1; 
} 

:

public static String getCompetition() { 
    return competition; 
} 

는 null를 돌려 그러나.

 final String competition = MainActivity.getCompetition(); 
+0

아마도 null이 아닌 값으로 'setCompetition'을 호출하지 않았을 것입니다 ... –

+0

전화를 걸 때 활동이 메모리에 남아 있는지 확인 했습니까? –

+0

그리고 경쟁 문자열을 설정하는 코드를 보여줍니다. 클래스 문에 접근하기 전에'this.'를 보는 것이 더 명확 할 것입니다. –

답변

0

나는 당신을 생각 : 여기

내가 브로드 캐스트 리시버를 확장하는 클래스 AlarmNotify에와 기능에 공공 무효 onReceive (컨텍스트 컨텍스트, 의도 의도) {

를 사용하려고하는 방법이다 어디서나 setCompetition을 호출하지 않습니다. 당신이 다음 setCompetition가 호출되지 않는, 인쇄 된 메시지가 표시되지 않는 경우

public static void setCompetition(String competition1) { 
    System.out.println("Set competition to "+competition1); 
    competition = competition1; 
} 

을 - 그 유효성을 확인하려면이 코드 조각을 시도합니다. 이것이 호출되고 있는지 확인하십시오.

+0

저는 비동기 메소드에서 setCompetition을 호출합니다. –

0

내가 실수 한 부분은 다음과 같습니다. 데이터를 검색하는 데 몇 초가 걸리는 네트워크 기반 비동기 작업을 호출하고있었습니다. 백그라운드에서 작동합니다.

이 값에 액세스하려고 시도한 다른 함수를 호출하고있었습니다. 비동기 작업이 실행되기 전에도 즉각 해고되었습니다. 그것이 null을 반환하는 이유입니다.

비동기 작업에서 이러한 값을 반환하지 않았습니다.

궁극적으로 비동기의 postExecute 메소드에서 다른 함수를 호출합니다.

희망은 내가 한 것처럼 실수 한 사람을 돕습니다.