【发布时间】:2016-02-16 21:24:47
【问题描述】:
第一个问题,我从java编程开始..
我有一个 AssyncTask 方法,它使用一个接口在完成后获取用户信息,该调用来自 OnPostExecute。一切都很好,但是一旦您收到有关我的主要活动的数据,我就无法将用户从 done 方法中提取出来。
我发布代码以便更好地理解。
new FetchUserDataAsyncTask(user, new GetUserCallBack() {
@Override
public void done(User returnedUser) {
String usernameRet = returnedUser.username;
String passwordRet = returnedUser.password;
}
});
和界面:
public interface GetUserCallBack {
public abstract void done(User returnedUser);
}
异步任务:
public class FetchUserDataAsyncTask extends AsyncTask<Void, Void, User> {
RequestHandler rh = new RequestHandler();
User user;
User ret_user;
GetUserCallBack usercallback;
public FetchUserDataAsyncTask(User user, GetUserCallBack usercallback){
this.user = user;
this.usercallback = usercallback;
}
@Override
protected User doInBackground(Void... params) {
try {
HashMap<String, String> dataToSend = new HashMap<>();
dataToSend.put("username", user.username);
dataToSend.put("password", user.password);
ret_user = rh.sendGetRequest("www.fjrmy.php", dataToSend);
return null;
} catch (Exception e) {
e.printStackTrace();
}
return ret_user;
}
@Override
protected void onPostExecute(User returnedUser) {
super.onPostExecute(ret_user);
usercallback.done(returnedUser);
}
}
我只想“提取”usernameRet 和 passwordRet 来使用它们。有可能吗?
非常感谢。
【问题讨论】:
-
为什么要包含 JavaScript 标记?这是一种完全不同的语言。
-
发布您的 AsyncTask 代码
-
在这里查看我的答案stackoverflow.com/a/35210468/2308683
-
@cricket_007 有没有关于如何做的简短解释?这真的很简单,我只想提取返回用户的信息以便在通话中使用它。
-
你认为
return null;会做什么?
标签: java android interface callback