Как изменить локальную / глобальную или вернуть переменную из метода залпа - PullRequest
0 голосов
/ 30 октября 2018

Можно ли изменить значение глобальной переменной или вернуть значение из метода залпа. Я пытаюсь вернуть значение, но я не получаю никакого значения от этого метода. Мне нужно вернуть ArrayList 'listaFilmovaSerija'.

public static ArrayList<MoviesShowsModel> readJSON(Context context, String url, final ArrayList<MoviesShowsModel> listaFilmovaSerija, final boolean odredjenaVelicina){
            requestQueue = Volley.newRequestQueue(context);
            listaFilmovaSerija.clear();
            JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET,
                url, null,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        try {
                            String naslov = "";
                            JSONObject obj = new JSONObject(response.toString());
                            JSONArray arr = obj.getJSONArray("results");
                            int d = (odredjenaVelicina)? 10 : arr.length();
                            for (int i = 0; i < d; i++){
                                JSONObject obj2 = arr.getJSONObject(i);
                                naslov = (getTabActive() == 0)? obj2.getString("title") : obj2.getString("name");
                                listaFilmovaSerija.add(new MoviesShowsModel(naslov,
                                        obj2.getString("poster_path"),
                                        obj2.getString("overview"),
                                        obj2.getString("backdrop_path"),
                                        obj2.getInt("id")));
                            }

                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Log.i("ISPIS","Desila se greska " + error);
            }
        });
requestQueue.add(jsonObjectRequest);

return listaFilmovaSerija;}

1 Ответ

0 голосов
/ 30 октября 2018

Чтобы получить ответ в ArrayList, вы должны реализовать пользовательский запрос типа ArrayList, тогда только вы сможете получить желаемый ответ.

Вы можете прочитать об этом в официальной документации

, и вы можете найти учебник здесь

Пример из Официальной документации, которая является Custom GsonRequest

public class GsonRequest<T> extends Request<T> {
    private final Gson gson = new Gson();
    private final Class<T> clazz;
    private final Map<String, String> headers;
    private final Listener<T> listener;

    /**
     * Make a GET request and return a parsed object from JSON.
     *
     * @param url URL of the request to make
     * @param clazz Relevant class object, for Gson's reflection
     * @param headers Map of request headers
     */
    public GsonRequest(String url, Class<T> clazz, Map<String, String> headers,
            Listener<T> listener, ErrorListener errorListener) {
        super(Method.GET, url, errorListener);
        this.clazz = clazz;
        this.headers = headers;
        this.listener = listener;
    }

    @Override
    public Map<String, String> getHeaders() throws AuthFailureError {
        return headers != null ? headers : super.getHeaders();
    }

    @Override
    protected void deliverResponse(T response) {
        listener.onResponse(response);
    }

    @Override
    protected Response<T> parseNetworkResponse(NetworkResponse response) {
        try {
            String json = new String(
                    response.data,
                    HttpHeaderParser.parseCharset(response.headers));
            return Response.success(
                    gson.fromJson(json, clazz),
                    HttpHeaderParser.parseCacheHeaders(response));
        } catch (UnsupportedEncodingException e) {
            return Response.error(new ParseError(e));
        } catch (JsonSyntaxException e) {
            return Response.error(new ParseError(e));
        }
    }
}
...