I have craeted a class named as EventService ,the function of the class is to perform a network request using volley and return the result as Arraylist of class type Eventlist, the volley response is then used as a parameter in intilizing the recyclerview adapter. i'm looking for an assistance on how to work out. i have tried the code below and my app keeps on crashing.
public class Extra extends Fragment {
ArrayList<EventList> eventLists=new ArrayList<>();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Eventservice eventservice=new Eventservice(getContext());
eventLists=eventservice.getEventLists();
View view=inflater.inflate(R.layout.eventrecyclerview, container, false);
RecyclerView recyclerView=view.findViewById(R.id.recyclerview);
EventAdapter eventAdapter=new EventAdapter(getContext(),eventLists);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
recyclerView.setAdapter(eventAdapter);
// Inflate the layout for this fragment
return view;
}
}
public class Eventservice {
Context context;
ArrayList<EventList> eventLists=new ArrayList<>();
String url="https://ipAddress/stdportal/events/getAllevents.php";
JSONObject event;
private static final String TAG = "Eventservice";
public Eventservice(Context context) {
this.context = context;
}
public ArrayList<EventList> getEventLists() {
JsonArrayRequest jsonArrayRequest=new JsonArrayRequest(Request.Method.POST, url, null, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
int count=0;
while (count<=response.length())
{
try {
event =response.getJSONObject(count);
EventList eventList=new EventList(
event.getString("date"),
event.getString("venue"),
event.getString("eventdescription"),
event.getString("eventtittle")
);
eventLists.add(eventList);
count++;
} catch (JSONException e) {
e.printStackTrace();
}
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
});
Mysigleton.getInstance(context).addRequest(jsonArrayRequest);
return eventLists;
}
}