2016-09-30 2 views
2

Это мой первый URLКак получить ответ из нескольких URL с помощью Jsonarray в Android

http://www.adayalangal.com/wp-json/wp/v2/posts/?page=1

есть до 8 страниц там ... `

JsonArrayRequest productReq = new JsonArrayRequest(url, new Response.Listener<JSONArray>() 
     { 

      @Override 
      public void onResponse(JSONArray response) { 
       Log.d(TAG, String.valueOf(response)); 
       System.out.print(response); 
       pDialog.hide(); 
       JSONObject obj; 
       DataModel dataModel; 
       JSONObject uniObject; 
       //code for retreiving web content 


        } 


      } 
     }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       VolleyLog.d(TAG, "Error: " + error.getMessage()); 
       pDialog.hide(); 
       //hidePDialog(); 

      } 
     }); 

     // Adding request to request queue 
     AppController.getInstance().addToRequestQueue(productReq);` 

Когда я бегу это я получил только контент только с первой страницы ... Я хочу получить содержимое до тех пор, пока ответ с URL не станет нулевым ... как я могу это реализовать

+1

Keep увеличивая значение параметра страницы для каждого следующего удара. например page = 2, page = 3 в URI –

ответ

1

создать отдельный метод для апи вызова, как это:

Определить одну переменную, которая проверить, если предыдущий ответ был нулевым или не

boolean isPreviousResponseWasEmpty = false; 

private void getData(String pageNumber){ 
String url = url + pageNumber ; 
JsonArrayRequest productReq = new JsonArrayRequest(url, new Response.Listener<JSONArray>() 
     { 

      @Override 
      public void onResponse(JSONArray response) { 
       Log.d(TAG, String.valueOf(response)); 
       System.out.print(response); 
       pDialog.hide(); 
       parseData(response.toString()); 
        } 


      } 
     }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       VolleyLog.d(TAG, "Error: " + error.getMessage()); 
       pDialog.hide(); 
       //hidePDialog(); 

      } 
     }); 

     // Adding request to request queue 
     AppController.getInstance().addToRequestQueue(productReq);` 
} 

И создать отдельный метод для разбора вашего ответа сервера:

private void parseData(String serverResponse){ 
if (serverResponse!=null && !serverResponse.equals("")){ 
       JSONObject obj; 
       DataModel dataModel; 
       JSONObject uniObject; 
       //code for retreiving web content 

}else{ 
if (!isPreviousResponseWasEmpty){ 
    isPreviousResponseWasEmpty = false; 
    getData(incrementedPageNumber); 
    }else{ 
    isPreviousResponseWasEmpty = true; 
    } 
} 

} 
+0

Сделайте небольшую коррекцию и получили ответ. (Y) – Noushad

+0

как я могу добавить эти страницы только в том случае, когда viewpager достигает некоторого диапазона? @Override public void onPageSelected (int position) { if (position == (response.length() - 2)) { Log.d (TAG, String.valueOf (position)); pageNum ++; getData (pageNum); } } приведенный выше код заменяет просмотрщик на стр. 1, когда он достигает условия – Noushad

Смежные вопросы