2016-09-30 53 views
2

使用Jsonarray多个URL响应这是我的第一个URL如何检索针对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

保持每增加一个下一个命中,增加页面的参数值。如页面= 2,页面= 3在URI –

回答

1

的API调用这样创建单独的方法:

定义一个变量,它检查如果之前的响应为空或不是

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页的viewpager替换 – Noushad