如何从已回调的方法返回值?

时间:2013-07-02 06:41:03

标签: java android

我想从facebook 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。提前致谢

2 个答案:

答案 0 :(得分:1)

不,你不能那样回来。制作一个全局变量并分配它并在以后使用它。

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();
                        }
                    }
                }
            });

答案 1 :(得分:0)

而是将id设为全局,并在整个活动中访问它。