J'utilise une requête JsonObject dans onActivityCreated de mon fragment. J'ajoute la requête jsonobject à une file d'attente de requêtes. La file d'attente n'est pas exécutée du tout. J'ai mis l'instruction Log dans Onresponse et Onerrorresponse. C'est comme si la requête n'était pas lancée du tout. Voici mon code. S'il vous plaît suggérer si je fais quelque chose de mal. J'ai besoin de passer une chaîne au serveur. Donc, je le mets dans un jlistobject jlistname. Le serveur renverra un jsonobject, afin de le recevoir im en utilisant jsonobjectrequest au lieu de stringrequest.JsonObjectrequest n'est pas exécuté après avoir été mis en file d'attente
RequestQueue rq;
JsonObjectRequest jsObjRequest;
JSONObject jlistname = new JSONObject();
String listname="list1";
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
searchitembtn=(ImageButton) getView().findViewById(R.id.searchitembtn);
rq = Volley.newRequestQueue(getActivity());
try {
jlistname.put("listname", listname);
} catch (JSONException e) {
e.printStackTrace();
}
jsObjRequest = new JsonObjectRequest(Request.Method.POST, getlistitems, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.i(TAG, "im in onresponse" + response);
System.out.println(response);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.i(TAG, "im in onerrorresponse" + error);
}
}) {
@Override
public byte[] getBody() {
return jlistname.toString().getBytes();
}
@Override
public String getBodyContentType() {
return "application/json";
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> headers = new HashMap<String, String>();
headers.put("Accept", "application/json");
return headers;
}
};
if (listtype==100||listtype==101){
-----------------------
}
else if(listtype==102){
Log.i(TAG,"mylisttypeis102: "+listtype);
Log.i(TAG,"im before adding o request queue"+jsObjRequest);
rq.add(jsObjRequest);
Log.i(TAG, "im after adding o request queue"+rq);
}
else {
-------------------
}
}
showLists();
}
MISE À JOUR: J'ai ajouté un bouton à la mise en page et dans la onclicklistener du bouton maintenu rq.add (jsObjRequest);
Ensuite, je reçois la réponse correctement.
Mais je ne veux vraiment pas la réponse sur le clic. Je veux que la réponse soit générée lorsque le fragment est chargé selon mon code dans onActivityCreated. Est-ce que quelqu'un peut expliquer pourquoi j'obtiens une réponse en utilisant seulement un auditeur?
Vérifiez 'la valeur de listtype' s'il vous plaît – BNK
Salut @BNK oui le type de liste est 102. Les trois déclarations de journal au sein de l'autre si la condition OBTIENNENT imprimé. – user6005433
Toute autre information de logcat disponible ou non? – BNK