Volley przechwytywanie response

0

Stworzyłem sobie metodę Volley'ową, która pobiera z RESTa dane. Chciałbym wykorzystać dane zwrócone przez listener ale nie wiem jak to zrobić.

KOD:

 public String getAll(){
            String stringOdp="";
            JsonObjectRequest request = new JsonObjectRequest("tu_http_url", null,
                    new Response.Listener<JSONObject>() {
                        @Override
                        public void onResponse(JSONObject response) {
                            stringOdp=response.toString();  // tu błąd
                        }
                    },
                    new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {
                        }
                    }
            );
            VolleyApplication.getInstance().getRequestQueue().add(request);
            return stringOdp;
        }

gdy zmienna stringOdp jest final, w linii oznaczonej "tu błąd" pojawia się błąd, że nie można przypisać wartości do zmiennej final, gdy zmienna nie jest final, wyskakuje błąd że klasa wewnętrzna nie może przypisać zmiennej do innej niż final-więc w taki sposób się nie da zrobić. W jaki sposób to obejść? Z góry dziękuję za odpowiedzi

0

Referencje typu final nie mogą być zmieniane tak, że zaczynają wskazywać na inny obiekt. Opakuj to w cokolwiek, np:

public String getAll(){
            final StringBuilder result = new StringBuilder();
            JsonObjectRequest request = new JsonObjectRequest("tu_http_url", null,
                    new Response.Listener<JSONObject>() {
                        @Override
                        public void onResponse(JSONObject response) {
                            result.append(response.toString());  // tu błąd
                        }
                    },
                    new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {
                        }
                    }
            );
            VolleyApplication.getInstance().getRequestQueue().add(request);
            return result.toString();
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1