Я создаю систему входа для приложения для Android. Я использую OkHttp для подключения к моему серверу и получения ответа JSON.Возвращаемое значение из внутреннего класса по методу
Я определил класс с данными возврата входа (прямо сейчас только истинный/ложный ответ на основе того, существует ли пользователь в базе данных), а затем написал код для подключения к серверу, как показано ниже:
class UserLogin {
boolean status;
public void setStatus(boolean status) {
this.status = status;
}
public boolean getStatus() {
return status;
}
}
public class ClientServerInterface {
OkHttpClient client = new OkHttpClient();
boolean login(Request request) {
final Gson gson = new Gson();
client.newCall(request).enqueue(new Callback() {
UserLogin login;
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
login = gson.fromJson(response.body().charStream(), UserLogin.class);
login.setStatus(login.status);
}
});
// need to return the boolean response (status) here
}
}
код, который передает Request
переменную метода login
отлично работает. Я хочу, чтобы login
возвращал логический ответ, чтобы передать его другим методам в других классах.
Однако, поскольку объект UserLogin
определен в callback
, я не могу получить к нему доступ в родительском методе. Я сделал метод getStatus
, но не знаю, как правильно его использовать, чтобы получить статус в основном методе login
.
'// нужно вернуть логический отклик (статус) здесь' => Очевидно, вы не можете этого сделать ... потому что, когда этот метод возвращает запрос, все еще может быть запущен – Selvin