EventsScreen.java 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package com.example.yiupang.freefoodfinder;
  2. import android.content.Intent;
  3. import android.os.Bundle;
  4. import android.support.annotation.Nullable;
  5. import android.support.v4.app.Fragment;
  6. import android.util.Log;
  7. import android.view.LayoutInflater;
  8. import android.view.View;
  9. import android.view.ViewGroup;
  10. import android.widget.AdapterView;
  11. import android.widget.ListView;
  12. import com.fasterxml.jackson.databind.JsonNode;
  13. import java.net.HttpURLConnection;
  14. import java.util.List;
  15. /**
  16. * Created by yiupang on 5/6/2017.
  17. *
  18. */
  19. public class EventsScreen extends Fragment
  20. {
  21. @Nullable
  22. @Override
  23. public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
  24. {
  25. final View view = inflater.inflate(R.layout.events_screen, container, false); /*Make it final so that the inner class can't change it*/
  26. /*Make a GET call to initialize the table*/
  27. HttpCall httpCall = new HttpCall();
  28. httpCall.setMethodType(HttpCall.GET);
  29. httpCall.setUrl("http://free-food-finder.herokuapp.com/events");
  30. HttpRequestSpecial hptr = new HttpRequestSpecial(view);
  31. hptr.execute(httpCall);
  32. return view;
  33. }
  34. private void setItemListener(final ListView listView)
  35. {
  36. listView.setOnItemClickListener(new AdapterView.OnItemClickListener()
  37. {
  38. @Override
  39. public void onItemClick(AdapterView<?> adapterView, View view, int position, long id)
  40. {
  41. Event selectedEvent = (Event) adapterView.getAdapter().getItem(position);
  42. startActivity(Utility.getDetail(selectedEvent, getContext()));
  43. }
  44. });
  45. }
  46. private class HttpRequestSpecial extends HttpRequest {
  47. View view;
  48. private HttpRequestSpecial(View view) {
  49. this.view = view;
  50. }
  51. public void onResponse(Object response, int code) {
  52. super.onResponse(response, code);
  53. if (code != HttpURLConnection.HTTP_OK)
  54. Log.d("ON RESPONSE ERROR", "HTTP ERR: NOT OK");
  55. else {
  56. List<Event> events = Utility.parseFromJSONToEventObjs((JsonNode) response);
  57. ListView listView = (ListView) view.findViewById(R.id.events_screen);
  58. listView.setAdapter(new EventArrayAdapter(view.getContext(), R.layout.events_list_item, events));
  59. setItemListener(listView);
  60. }
  61. }
  62. }
  63. }