【发布时间】:2015-02-07 09:50:19
【问题描述】:
下面的示例必须返回 user.photo_100(和 user.photo_100 响应字符串,我记录了它),但 var wallPostUserAvatar 设置为 null。我好像漏掉了什么,但我找不到。
public class WallPostExtends {
private String wallPostUserAvatar;
public String getUserPhotoLink(int user_id){
//Prepare request for userName and photo
final VKRequest request = VKApi.users().get(VKParameters.from(VKApiConst.USER_ID, user_id, VKApiConst.FIELDS, "photo_100"));
request.executeWithListener(new VKRequest.VKRequestListener() {
@Override
public void onError(VKError error) {
}
@Override
public void onComplete(VKResponse response) {
super.onComplete(response);
//Work with UserName and photo response
VKApiUserFull user = ((VKList<VKApiUserFull>) response.parsedModel).get(0);
wallPostUserAvatar = user.photo_100;
}
});
Log.d("photo link: ", wallPostUserAvatar); //Here is NULL. What am I doing wrong?
return wallPostUserAvatar; //How to return here "user.photo_100" ?
}
}
【问题讨论】:
-
onComplete在return wallPostUserAvatar;之后调用,您必须在要获取数据的位置处理侦听器,将侦听器传递给此函数并使用它而不是new VKRequest.VKRequestListener() -
是同步调用还是异步调用?
-
是的,它是异步调用...