Reputation: 49
I'm making an application and i'm using Volley to get the data from an API but in the Request.Method.GET
it gives me an error that says "incompatible types: int cannot be converted to String". Here u can see the method:
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
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.JsonObjectRequest;
import com.android.volley.toolbox.Volley;
import com.google.gson.JsonObject;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* A simple {@link Fragment} subclass.
*/
public class NegociosFragment extends Fragment {
public RecyclerView recyclerView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
List<Empresas> empresas = rellenar();
RequestQueue requestQueue = Volley.newRequestQueue(getContext());
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_negocios,container,false);
//1. get a reference to recyclerView
recyclerView = (RecyclerView) view.findViewById(R.id.reciclador);
//2. set layoutManager
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
//3. create an adapter
EmpresasAdapter adapter = new EmpresasAdapter(getActivity(), /*Empresas2.getEmpresas()*/empresas);
//4. set adapter
recyclerView.setAdapter(adapter);
//5. set item animator to DefaultAnimator
recyclerView.setItemAnimator(new DefaultItemAnimator());
return view;
}
private List<Empresas> rellenar() {
final List<Empresas> empresas2 = null ;
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, "my url of the API",
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray jsonArray = response.getJSONArray("results");
for(int i=0; i<jsonArray.length(); i++){
JSONObject objeto = jsonArray.getJSONObject(i);
int id = objeto.getInt("id");
String data1 = objeto.getString("data1");
String data2 = objeto.getString("data2");
String data3 = objeto.getString("data3");
String data4 = objeto.getString("data4");
String data5 = objeto.getString("data5");
String data6 = objeto.getString("data6");
String data7 = objeto.getString("data7");
String data8 = objeto.getString("data8");
String data9 = objeto.getString("data9");
Double double1 = objeto.getDouble("double1");
Double double2 = objeto.getDouble("double2");
String data10 = objeto.getString("data10");
String data11 = objeto.getString("data11");
String data12 = objeto.getString("data12");
String data13 = objeto.getString("data13");
String data14 = objeto.getString("data14");
String data15 = objeto.getString("data15");
String data16 = objeto.getString("data16");
String data17 = objeto.getString("data17");
String data18 = objeto.getString("data18");
String data19 = objeto.getString("data19");
String data20 = objeto.getString("data20");
String data21 = objeto.getString("data21");
String data22 = objeto.getString("data22");
String data23 = objeto.getString("data23");
String data24 = objeto.getString("data24");
String data25 = objeto.getString("data25");
String data26 = objeto.getString("data26");
String data27 = objeto.getString("data27");
//change null to default information
data1 = comprobarString(data1);
data2 = comprobarString(data2);
data3 = comprobarString(data3);
data4 = comprobarString(data4);
data5 = comprobarString(data5);
data6 = comprobarString(data6);
data7 = comprobarString(data7);
data8 = comprobarString(data8);
data9 = comprobarString(data9);
double1 = comprobarDouble(double1);
double2 = comprobarDouble(double2);
data10 = comprobarString(data10);
data11 = comprobarString(data11);
data12 = comprobarString(data12);
data13 = comprobarString(data13);
data14 = comprobarString(data14);
data15 = comprobarString(data15);
data16 = comprobarString(data16);
data17 = comprobarString(data17);
data18 = comprobarString(data18);
data19 = comprobarString(data19);
data20 = comprobarString(data20);
data21 = comprobarString(data21);
data22 = comprobarString(data22);
data23 = comprobarString(data23);
data24 = comprobarString(data24);
data25 = comprobarString(data25);
data26 = comprobarString(data26);
data27 = comprobarString(data27);
empresas2.add(new Empresas(id, data1, data2, data3,
data4, data5, data6, data7,
data8, data9, double1, double2, data10, data11,
data12, data13, data14, data15, data16, data17, data18, data19,
data20, data21, data22, data23, data24, data25, data26, data27));
}
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError error){
}
}
);
requestQueue.add(jsonObjectRequest);
return empresas2;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
Double comprobarDouble(Double num){
Double fin = null;
if(num==null){
fin=0D;
}
else if(num!=null){
fin=num;
}
return fin;
}
String comprobarString(String txt){
String text;
if (txt==null){
text="No disponible";
}
else if(txt.equals("null")){
text="No disponible";
}
else{
text=txt;
}
return text;
}
}
This is the constructor of Empresas:
public class Empresas {
int id;
String data1;
String data2;
String data3;
String data4;
String data5
String data6;
String data7;
String data8;
String data9;
Double double1;
Double double2;
String data10;
String data11;
String data12;
String data13;
String data14;
String data15;
String data16;
String data17;
String data18;
String data19;
String data20;
String data21;
String data22;
String data23;
String data24;
String data25;
String data26;
String data27;
public Empresas(int id, String data1,String data2,String data3,String data4,String data5,String data6, String data7,
String data8, String data9, Double double1, Double double2, String data10, String data11, String data12, String data13,
String data14, String data15, String data16, String data17, String data18, String data19, String data20, String data21, String data22,
String data23, String data24, String data25, String data26, String data27){
this.id=id;
this.data1=data1;
this.data2=data2;
this.data3=data3;
this.data4=data4;
this.data5=data5;
this.data6=data6;
this.data7=data7;
this.data8=data8;
this.data9=data9;
this.double1=latitud;
this.double2=longitud;
this.data10=data10;
this.data11=data11;
this.data12=data12;
this.data13=data13;
this.data14=data14;
this.data15=data15;
this.data16=data16;
this.data17=data17;
this.data18=data18;
this.data19=data19;
this.data20=data20;
this.data21=data21;
this.data22=data22;
this.data23=data23;
this.data24=data24;
this.data25=data25;
this.data26=data26;
this.data27=data27;
}
}
This is the structure of the JSON
{
status: "OK",
code: 0,
message: "",
results: [
{
id: 42,
data1: "data",
data2: "data",
data3: "data",
data4: "data",
data5: "data",
data6: "data",
data7: "data",
data8: "data",
data9: "data",
double1: double1,
double2: double2,
data10: "data",
data11: "data",
data12: "data",
data13: "data",
data14: "data",
data15: "data",
data16: "data",
data17: "data",
data18: "data",
data19: "data",
data20: "data",
data21: "data",
data22: "data",
data23: "data",
data24: "data",
data25: "data",
data26: "data",
data27: "data"
},
The line where the error moves you at
Upvotes: 0
Views: 2254
Reputation: 7479
You should change this line:
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, "my url of the API",
new Response.Listener<JSONObject>() {
To this:
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, "my url of the API", null,
new Response.Listener<JSONObject>() {
You're missing the parameter there.
Upvotes: 2