हाय मैं वॉली अनुरोधों को मॉड्यूलर करना चाहता हूं इसलिए मैं वॉली अनुरोधों के साथ गतिविधि प्रस्तुति कोड को मिश्रित नहीं करता हूं। मैंने देखा सभी नमूने, वॉली अनुरोध रखा जा रहा है - उदाहरण के लिए - एक गतिविधि बटन से ऑनक्लिक घटना पर।एंड्रॉइड वॉली - किसी अन्य वर्ग में अनुरोधों को अलग कैसे करें
// 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 कॉल करने के लिए है:
मैं इस कोड (diff स्रोत से लिया गया) मतलब है। मैंने पहले से ही यह कोशिश की लेकिन यह विफल हो गया। मैं अगर यह प्रसंग के साथ संबंधित कुछ पता नहीं है, लेकिन यह विफल रहता है ...
मैं ऐसा किया:
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);
}
}
कर सकते हैं कोई मुझे बताता है कि मैं क्या गलत कर रहा हूं, या कोड को कैसे व्यवस्थित करना है?
अग्रिम धन्यवाद।
Async async ... mitexto.setText (varRequest.miError) है; ऑनस्पॉन्स या ऑनररस्पॉन्स में कॉल किया जाना चाहिए ... या क्लास जिस पर ऑनक्लिक है, उसे प्रतिक्रिया देना चाहिए। लिस्टनर ... – Selvin
हेहे, इसलिए इसके बजाय 'Response.Listener' उसे 'कॉलबैक ' का उपयोग करना चाहिए? एक अंतर कहां है? –
Selvin
मुझे लगता है कि रोहित पाटिल का जवाब http://stackoverflow.com/questions/35628142/how-to-make-separate-class-for-volley-library-and-call-all-method-of-volley-from है एक आप चाहते हैं। – SajithK