Problem with JsonArrayRequest

0

I am working with JsonArrayRequest to be able to recover data from a webservice but it gives me an error when executing, this is the error that it gives me:

  

Error: (62, 45) error: not suitable constructor found for   JsonArrayRequest (int, String, >) constructor   JsonArrayRequest.JsonArrayRequest (String, Listener, ErrorListener)   is not applicable (current and formal argument lists differ in length)   builder   JsonArrayRequest.JsonArrayRequest (int, String, JSONArray, Listener, ErrorListener)   is not applicable (current and formal argument lists differ in length)

Here is the class where I implemented the JsonArrayRequest:

package com.example.enriq.examen_tareas_segundo_plano_enrique_espinosa;


import android.app.ProgressDialog;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonArrayRequest;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;
import com.example.enriq.examen_tareas_segundo_plano_enrique_espinosa.adapter.Usuario;
import com.example.enriq.examen_tareas_segundo_plano_enrique_espinosa.adapter.UsuarioAdapter;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;

/**
 * Created by Enriq on 26/04/2018.
 */

public class asignaturaFragmento extends Fragment {
    private String url = "http://192.168.1.70:8080/WebService/webapi/usuarios";
    private ArrayList<Usuario> usuarios = new ArrayList<>();

    public asignaturaFragmento() {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {


        // Inflate the layout for this fragment
        View view = inflater.inflate(R.layout.activity_prueba, container, false);

        RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.recycler_list);
        recyclerView.setHasFixedSize(true);
        recyclerView.setLayoutManager(new GridLayoutManager(getActivity(), 2,
                GridLayoutManager.VERTICAL, false));

        final UsuarioAdapter adapter = new UsuarioAdapter(getActivity(), usuarios);
        recyclerView.setAdapter(adapter);

        RequestQueue queue = Volley.newRequestQueue(getActivity());
        final ProgressDialog dialog = new ProgressDialog(getActivity());
        dialog.setMessage("Por favor espere...");
        dialog.show();

        JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.GET, url,
                new Response.Listener<JSONArray>() {
                    @Override
                    public void onResponse(JSONArray response) {
                        deserializarJSONArray(response);
                        adapter.notifyDataSetChanged();
                        if (dialog.isShowing()) dialog.dismiss();
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Toast.makeText(getContext(), "Error al realizar la petición \n" + error.getMessage(), Toast.LENGTH_SHORT).show();
                        if (dialog.isShowing()) dialog.dismiss();
                    }
                });
        queue.add(jsonArrayRequest);
        return view;
    }

    public void deserializarJSONArray(JSONArray jsonArray) {

        for (int i = 0; i < jsonArray.length(); i++) {
            try {
                JSONObject item = jsonArray.getJSONObject(i);
                Usuario tarea = new Usuario();
                tarea.setId(item.getString("id"));
                tarea.setContrasena(item.getString("contrasena"));
                tarea.setNombreUsuario(item.getString("nombreUsuario"));

                usuarios.add(tarea);
            } catch (JSONException e) {
                Toast.makeText(getContext(), "Error al procesar la respuesta de la petición tarea",
                        Toast.LENGTH_SHORT).show();
            }
        }
    }

}

This is my adder class to get the values of the Json:

package com.example.enriq.examen_tareas_segundo_plano_enrique_espinosa.adapter;

import android.app.Activity;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;


import com.example.enriq.examen_tareas_segundo_plano_enrique_espinosa.R;

import java.util.ArrayList;

/**
 * Created by Next University.
 */
public class UsuarioAdapter extends RecyclerView.Adapter<UsuarioAdapter.UsuarioHolder>{

    private Activity activity;
    private ArrayList<Usuario> usuarios;

    public UsuarioAdapter(Activity activity, ArrayList<Usuario> usuarios) {
        this.activity = activity;
        this.usuarios = usuarios;
    }

    protected class UsuarioHolder extends RecyclerView.ViewHolder {

        protected TextView txtId, txtNombreUsuario, txtContrasena;

        public UsuarioHolder(View itemView) {
            super(itemView);

            txtId = (TextView) itemView.findViewById(R.id.txt_id);
            txtNombreUsuario = (TextView) itemView.findViewById(R.id.txt_nombre_usuario);
            txtContrasena = (TextView) itemView.findViewById(R.id.txt_contrasena);
        }
    }


    @Override
    public UsuarioHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        View view = activity.getLayoutInflater().inflate(R.layout.plantilla_usuario, parent, false);
        UsuarioHolder holder = new UsuarioHolder(view);

        return holder;
    }

    @Override
    public void onBindViewHolder(UsuarioHolder holder, int position) {
        holder.txtId.setText(usuarios.get(position).getId());
        holder.txtNombreUsuario.setText(usuarios.get(position).getNombreUsuario());
        holder.txtContrasena.setText(usuarios.get(position).getContrasena());
    }

    @Override
    public int getItemCount() {
        return usuarios.size();
    }
}

It does not show me the error in the class, only when I run my application I get the error.

    
asked by Enrique Espinosa 26.04.2018 в 17:48
source

0 answers