title: how to refresh my ListView with Swip Refresh Layout?
body: <pre><code>import adapter.FeedListAdapter;
  import app.AppController;
  import data.FeedItem;
  import java.io.UnsupportedEncodingException;
  import java.util.ArrayList;
  import java.util.List;
  import org.json.JSONArray;
  import org.json.JSONException;
  import org.json.JSONObject;
  import android.annotation.SuppressLint;
  import android.app.Activity;
  import android.os.Bundle;
  import android.support.v4.widget.SwipeRefreshLayout;
  import android.view.Window;
  import android.view.WindowManager;
  import android.widget.ListView;
  import com.android.volley.Cache;
  import com.android.volley.Cache.Entry;
  import com.android.volley.Request.Method;
  import com.android.volley.Response;
  import com.android.volley.VolleyError;
  import com.android.volley.VolleyLog;
  import com.android.volley.toolbox.JsonObjectRequest;
  
  public class MainActivity extends Activity {
      private static final String TAG = MainActivity.class.getSimpleName();
      private ListView listView;
      private FeedListAdapter listAdapter;
      private List&lt;FeedItem&gt; feedItems;
      private String URL_FEED = "http://myozawoo.esy.es/data.php";
      private String URL_FEED2 = "http://api.androidhive.info/feed/feed.json";
  
      private SwipeRefreshLayout swipeContainer;
  
  //     String page = getIntent().getExtras().getString("page");
      @SuppressLint("NewApi")
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          requestWindowFeature(Window.FEATURE_NO_TITLE);
          getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 0);
          setContentView(R.layout.activity_main);
  
  //        String page = getIntent().getExtras().getString("page");
  
          swipeContainer = (SwipeRefreshLayout) findViewById(R.id.swipeContainer);
          swipeContainer.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
              @Override
              public void onRefresh() {
  
  
                  listAdapter.notifyDataSetChanged();
              }
          });
  
  
          listView = (ListView) findViewById(R.id.list);
  
          feedItems = new ArrayList&lt;FeedItem&gt;();
  
          listAdapter = new FeedListAdapter(this, feedItems);
          listView.setAdapter(listAdapter);
  
          // These two lines not needed,
          // just to get the look of facebook (changing background color &amp; hiding the icon)
  //        getActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#3b5998")));
  //        getActionBar().setIcon(
  //                new ColorDrawable(getResources().getColor(android.R.color.transparent)));
  
          // We first check for cached request
  //        Cache cache = AppController.getInstance().getRequestQueue().getCache();
  
          // Page One
          String page = getIntent().getExtras().getString("page");
          if(page.equals("1")) {
              Cache cache = AppController.getInstance().getRequestQueue().getCache();
              Entry entry = cache.get(URL_FEED);
              if (entry != null) {
                  // fetch the data from cache
                  try {
                      String data = new String(entry.data, "UTF-8");
                      try {
                          parseJsonFeed(new JSONObject(data));
                      } catch (JSONException e) {
                          e.printStackTrace();
                      }
                  } catch (UnsupportedEncodingException e) {
                      e.printStackTrace();
                  }
  
              } else {
                  // making fresh volley request and getting json
                  JsonObjectRequest jsonReq = new JsonObjectRequest(Method.GET,
                          URL_FEED, null, new Response.Listener&lt;JSONObject&gt;() {
  
                      @Override
                      public void onResponse(JSONObject response) {
                          VolleyLog.d(TAG, "Response: " + response.toString());
                          if (response != null) {
                              parseJsonFeed(response);
                          }
                      }
                  }, new Response.ErrorListener() {
  
                      @Override
                      public void onErrorResponse(VolleyError error) {
                          VolleyLog.d(TAG, "Error: " + error.getMessage());
                      }
                  });
  
                  // Adding request to volley request queue
                  AppController.getInstance().addToRequestQueue(jsonReq);
              }
          }
  
          //Page Two
  
          else if (page.equals("2")) {
              Cache cache = AppController.getInstance().getRequestQueue().getCache();
              Entry entry = cache.get(URL_FEED2);
              if (entry != null) {
                  // fetch the data from cache
                  try {
                      String data = new String(entry.data, "UTF-8");
                      try {
                          parseJsonFeed(new JSONObject(data));
                      } catch (JSONException e) {
                          e.printStackTrace();
                      }
                  } catch (UnsupportedEncodingException e) {
                      e.printStackTrace();
                  }
  
              } else {
                  // making fresh volley request and getting json
                  JsonObjectRequest jsonReq = new JsonObjectRequest(Method.GET,
                          URL_FEED2, null, new Response.Listener&lt;JSONObject&gt;() {
  
                      @Override
                      public void onResponse(JSONObject response) {
                          VolleyLog.d(TAG, "Response: " + response.toString());
                          if (response != null) {
                              parseJsonFeed(response);
                          }
                      }
                  }, new Response.ErrorListener() {
  
                      @Override
                      public void onErrorResponse(VolleyError error) {
                          VolleyLog.d(TAG, "Error: " + error.getMessage());
                      }
                  });
  
                  // Adding request to volley request queue
                  AppController.getInstance().addToRequestQueue(jsonReq);
              }
          }
  
          // Other Four Pages
          else {
              Cache cache = AppController.getInstance().getRequestQueue().getCache();
                  Entry entry = cache.get(URL_FEED);
                  if (entry != null) {
                      // fetch the data from cache
                      try {
                          String data = new String(entry.data, "UTF-8");
                          try {
                              parseJsonFeed(new JSONObject(data));
                          } catch (JSONException e) {
                              e.printStackTrace();
                          }
                      } catch (UnsupportedEncodingException e) {
                          e.printStackTrace();
                      }
  
                  } else {
                      // making fresh volley request and getting json
                      JsonObjectRequest jsonReq = new JsonObjectRequest(Method.GET,
                              URL_FEED, null, new Response.Listener&lt;JSONObject&gt;() {
  
                          @Override
                          public void onResponse(JSONObject response) {
                              VolleyLog.d(TAG, "Response: " + response.toString());
                              if (response != null) {
                                  parseJsonFeed(response);
                              }
                          }
                      }, new Response.ErrorListener() {
  
                          @Override
                          public void onErrorResponse(VolleyError error) {
                              VolleyLog.d(TAG, "Error: " + error.getMessage());
                          }
                      });
  
                      // Adding request to volley request queue
                      AppController.getInstance().addToRequestQueue(jsonReq);
                  }
  
          }
  
          swipeContainer.setColorSchemeColors(android.R.color.holo_blue_bright,
                  android.R.color.holo_green_light,
                  android.R.color.holo_orange_light,
                  android.R.color.holo_red_light);
  
      }
  
  
  
  
  
      /**
       * Parsing json reponse and passing the data to feed view list adapter
       * */
      public void parseJsonFeed(JSONObject response) {
          try {
  //            String page = getIntent().getExtras().getString("page");
  //            if (page.equals("1"))
              JSONArray feedArray = response.getJSONArray("feed");
  
              for (int i = 0; i &lt; feedArray.length(); i++) {
                  JSONObject feedObj = (JSONObject) feedArray.get(i);
  
                  final FeedItem item = new FeedItem();
                  item.setId(feedObj.getInt("id"));
                  item.setName(feedObj.getString("name"));
  
                  // Image might be null sometimes
                  String image = feedObj.isNull("image") ? null : feedObj
                          .getString("image");
                  item.setImge(image);
                  item.setStatus(feedObj.getString("status"));
                  item.setProfilePic(feedObj.getString("profilePic"));
                  item.setTimeStamp(feedObj.getString("timeStamp"));
  
                  // url might be null sometimes
                  String feedUrl = feedObj.isNull("url") ? null : feedObj
                          .getString("url");
                  item.setUrl(feedUrl);
  
                  feedItems.add(item);
              }
  
  
              // notify data changes to list adapater
  
  
              listAdapter.notifyDataSetChanged();
          } catch (JSONException e) {
              e.printStackTrace();
          }
  
          swipeContainer.setRefreshing(false);
      }
  
  
  
  
  }
  </code></pre>
  
  <p>I wanna do refresh. If refresh, I can get more data. I don't know how to get new data. Who wanna help me? I need help. I used Swipe Refresh Layout. I don't know how to connect with parseJSON() {}. Sorry for my poor English!</p>