Как я могу вернуть класс в обратном вызове Retrofit Android - PullRequest
0 голосов
/ 17 апреля 2020

Я хотел бы вернуть UserResponse в функции обратного вызова, но я не знаю, как я могу это сделать.

 private void getUser(String api_token){


      Call<UserResponse> call =  APIService.getUserByToken(api_token);

            call.enqueue(new Callback<UserResponse>() {
            @Override
            public void onResponse(Call<UserResponse> call, Response<UserResponse> response) {
              //   userResponse = response.body();
                if(response.isSuccessful()) {

                    Log.d("GET API TOKEN USER MAIN", String.valueOf(response.body().getUser().getId()));
// RETURN Here UserResponse
                }
            }
            @Override
            public void onFailure(Call<UserResponse> call, Throwable t) {
                Log.d("Falloooooo", t.getMessage());
            }
        });


    }

1 Ответ

0 голосов
/ 17 апреля 2020

Надеюсь понимаю, что вы хотите

 public void getUser(String api_token) {
        CheckInternetConnection connectionCheck = new CheckInternetConnection(getContext());

        if (connectionCheck.haveNetworkConnection()) {
            ApiInterface apiService =
                    ApiClient.getClient().create(ApiInterface.class);

         Call<UserResponse> call = apiService.getUserByToken(api_token);;

            call.enqueue(new Callback<UserResponse>() {
                @Override
                public void onResponse(Call<UserResponse > call, Response<UserResponse > response) {

                    if (response.isSuccessful()) {

                      userName.setText(response.body().getName());

                    }
                }

                @Override
                public void onFailure(Call<UserResponse > call, Throwable t) {
                    Log.d("sucess", String.valueOf(t));

                }
            });
        } else {
            Toasty.info(getContext(), (getResources().getString(R.string.check_connection)), Toast.LENGTH_LONG).show();
        }
    }

и интерфейс класса

public interface ApiInterface {
 @GET("nameofapi")
    Call<UserResponse> getUserByToken(@Header("Access-Token") String access_token);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...