Привет, я хотел бы модулизовать запросы волейбола, поэтому я не смешиваю код представления активности с запросами на волейбол. Все образцы, которые я видел, запрос на залп помещаются, например, в событие OnClick из кнопки активности.
Я имею в виду этот код (взятый из источника diff):
// prepare the Request
JsonObjectRequest getRequest = new JsonObjectRequest(Request.Method.GET, url, null,
new Response.Listener<JSONObject>()
{
@Override
public void onResponse(JSONObject response) {
// display response
Log.d("Response", response.toString());
}
},
new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error) {
Log.d("Error.Response", response);
}
}
);
// add it to the RequestQueue
queue.add(getRequest);
Моя точка зрения заключается в том, как получить весь код запроса в другом классе и просто вызвать класс и вызвать makeRequest. Я уже пробовал это, но он терпит неудачу. Я не знаю, связано ли это с Контекстом, но он терпит неудачу...
Я сделал это:
public void onClick(View v) {
try{
Utils varRequest = new Utils(getApplicationContext());
String url = "https://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=";
varRequest.makeRequest(url);
mitexto.setText(varRequest.miError);
}
catch(Exception excepcion) {
System.out.println(excepcion.toString());
}
}
... и класс Utils:
public class Utils {
public Context contexto;
public String miError;
private RequestQueue queue ;
public Utils (Context contextoInstancia){
contexto = contextoInstancia;
queue = Volley.newRequestQueue(contexto);
}
public void makeRequest(String url){
JsonObjectRequest jsObjRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
// TODO Auto-generated method stub
miError="Response => "+response.toString();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// TODO Auto-generated method stub
miError="Response => "+error.networkResponse.toString();
}
});
queue.add(jsObjRequest);
}
}
Кто-нибудь может сказать мне, что я делаю неправильно, или как структурировать код?
Спасибо заранее.