2013-07-02 2 views
1

은 내가 페이스 북 SDK에서 사용자의 세부 사항을 싶어. 지금은 사용자의 ID를 반환하려는이 메서드를 사용하고, 어떻게 도와 줄 수 있을지 모르겠다.콜백 메소드에서 값을 반환하는 방법은 무엇입니까?

private String getUserId() 
{ 
    Request.executeMeRequestAsync(Session.getActiveSession(), 
            new Request.GraphUserCallback() 
       { 
        @Override 
        public void onCompleted(GraphUser user, Response response) 
        { 
         FacebookRequestError error = response.getError(); 
         GraphObject graphObject = response.getGraphObject(); 

         if(graphObject != null) 
         { 
          if(error == null) 
          { 
           Preferences.saveUserInfo(user.getId(), 
                 FetchGroups.this); 
           Preferences.saveUserName(user.getName(), 
                 FetchGroups.this); 

           return user.getId(); 
          } 
         } 
        } 
       }); 
} 

이것은 oncompletd 메소드의 리턴 유형이 void 인 오류입니다.

+0

그냥 제안, 당신은)합니다 (AsyncTask를에서 onPostExecute()에서 ID를 추출 할 수 없습니다? – g00dy

+0

여기서는 AsyncTask()를 사용하지 않습니다. –

+0

청취자를 작성하십시오. 어떻게하는지 알고 있습니까? – deadfish

답변

1

아니, 당신은 that.Make 같은 전역 변수를 반환하고 할당하고 나중에 사용할 수 없습니다.

public class SomeClass { 
String useid; 

-

 Request.executeMeRequestAsync(Session.getActiveSession(), new Request.GraphUserCallback() { 

       @Override 
       public void onCompleted(GraphUser user, Response response) { 
        FacebookRequestError error = response.getError(); 
        GraphObject graphObject = response.getGraphObject(); 
        if(graphObject != null) { 
         if(error == null) { 
          Preferences.saveUserInfo(user.getId(), FetchGroups.this); 
          Preferences.saveUserName(user.getName(), FetchGroups.this); 
          userid = user.getId(); 
         } 
        } 
       } 
      }); 
+0

아주 쉽게,하지만 난이 일을하지 않으려는, 내가 반환해야합니다. 이 작업을 수행 할 수있는 다른 옵션이 없습니까? –

+1

당신은 어떻게 익명의 내부 클래스 메소드에서 변수를 반환 할 수 있습니다? * 이럴 * 당신이 보는 경우도 그 방법의 반환 형식은 무효입니다 아니, 그. –

+0

흠. 알았어 고마워 –

0

대신 ID가 글로벌하고 활동 전반에 걸쳐 액세스를 사전에 감사합니다.

관련 문제