【发布时间】:2021-05-08 22:04:44
【问题描述】:
我有这个代码
public User getUser(final Context context, final Account user) {
Call<List<User>> callUsers = request.getUsers(authKey, "json");
callUsers.enqueue(new Callback<List<User>>() {
@Override
public void onResponse(Call<List<User>> call, Response<List<User>> response) {
if (!response.isSuccessful()) {
Toast.makeText(context, String.valueOf(response.message()), Toast.LENGTH_LONG).show();
return;
}
List<User> users = response.body();
for (User acc : users) {
if (acc.getUsername().equals(user.getUser())
|| acc.getEmail().equals(user.getUser())) {
match = acc;
// String s = match.getId() + " " + match.getUsername() + " " + match.getEmail();
// Toast.makeText(context, s, Toast.LENGTH_LONG).show();
// Here the match contains the acc data
}
}
}
@Override
public void onFailure(Call<List<User>> call, Throwable t) {
Toast.makeText(context, t.toString(), Toast.LENGTH_LONG).show();
}
});
String s = match.getId() + " " + match.getUsername() + " " + match.getEmail();
Toast.makeText(context, s, Toast.LENGTH_LONG).show();
// Here match does not contain that data anymore...
return match;
}
所以我想使用 retrofit2 从 REST API 接收一些信息,如果我找到相关数据,我想将其存储在一个名为 match 的变量中。它在 onResponse 方法的主体中运行良好,但是当我尝试在 getUser 方法结束时返回它时,它不再包含数据。我怎样才能使这些数据持久化?
【问题讨论】: