Я пытаюсь реализовать запрос GET, используя Volley.У меня есть кнопка «Применить» в PlacementActivity, которая направляет пользователя на PlacementHomeActivity с фрагментами.Я реализовал запрос GET в Apply.OnClickListener, и данные, полученные из запроса, должны быть показаны в PlacementHomeActivity.Но я получаю пустую объектную ошибку в этой строке:
SingletonRequestQueue.getInstance(PlacementActivity.context).addToRequestQueue(ArrayRequest);
(Этот код работал нормально, когда вместо фрагментов использовался Activity)
Это код класса Apply.OnClickListener:
Apply.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
applyList = new ArrayList<Company>();
JsonArrayRequest ArrayRequest = new JsonArrayRequest(Request.Method.GET, applyCompaniesUrl,
null,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
try {
for (int i = 0; i < response.length(); i++) {
JSONObject companies = response.getJSONObject(i);
String id = companies.getString("id");
JSONObject company = companies.getJSONObject("company");
Company company = new Company(id, company);
applyList.add(company);
}
} catch (JSONException e) {
e.printStackTrace();
}
Intent applyListIntent = new Intent(PlacementActivity.this,
PlacementHomeActivity.class);
startActivity(applyListIntent);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(PlacementActivity.this, error.toString(), Toast.LENGTH_LONG).show();
StringWriter writer = new StringWriter();
error.printStackTrace(new PrintWriter(writer));
String s = writer.toString();
}
}) {
@Override
public Map<String, String> getHeaders() {
Map<String, String> params = new HashMap<String, String>();
params.put("Cookie", "remember_user_token=" + userToken);
return params;
}
};
SingletonRequestQueue.getInstance(PlacementActivity.context).addToRequestQueue(ArrayRequest);
}
});
Это класс SingletonRequestQueue:
public class SingletonRequestQueue {
public static SingletonRequestQueue mInstance;
private RequestQueue mRequestQueue;
private static Context appContext;
public Context context;
private SingletonRequestQueue(Context context){
appContext = context;
mRequestQueue = getRequestQueue();
}
public static synchronized SingletonRequestQueue getInstance(Context context){
if(mInstance==null) {
mInstance = new SingletonRequestQueue(context);
}
return mInstance;
}
public RequestQueue getRequestQueue(){
if(mRequestQueue==null){
mRequestQueue = new Volley().newRequestQueue(appContext.getApplicationContext());
}
return mRequestQueue;
}
public <T> void addToRequestQueue(Request<T> request){
getRequestQueue().add(request);
}
}
Как исправить эту ошибку?